Risvegliare Pc da standby con crontab

Non importa se ti serve una mano per partire o se vuoi un consiglio avanzato: gli utenti "del Pinguino" hanno una risposta per ogni necessità.
Regole del forum
Avatar utente
dante5351
Livello: BD-ROM (6/15)
Livello: BD-ROM (6/15)
Messaggi: 219
Iscritto il: dom gen 19, 2014 5:03 pm

Risvegliare Pc da standby con crontab

Messaggio da dante5351 »

Buonasera.
Vorrei creare un'operazione pianificata con l'utilita' di compiti pianificati, che utilizza crontab, che mi risvegli il Pc, con Mint Mate17, senza usare rtcwake, perche' la sua sintassi va in conflitto con crontab. E' possibile?
Grazie
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
System
System
Bot ufficiale TurboLab.it
Bot
Messaggi:
Iscritto il: sab dic 31, 2016 6:19 pm
Contatta: Contatta

Re: Risvegliare Pc da standby con crontab

Messaggio da System » dom nov 15, 2015 9:08 pm


Avatar utente
PippoDJ
Livello: Storage Area Network (12/15)
Livello: Storage Area Network (12/15)
Messaggi: 1678
Iscritto il: sab nov 01, 2014 3:50 pm

Re: Risvegliare Pc da standby con crontab

Messaggio da PippoDJ »

Ciao dante5351,
non penso sia fattibile: il demone che regola il crontab non è attivo durante la sospensione del PC, quindi non si può usare per pianificarne il risveglio, ma solo lo spegnimento.

Tipicamente crontab e rtcwake si usano insieme per pianificare spegnimento/riaccensione del PC [prova a dare un'occhiata a questo post], quindi non mi è ben chiaro cosa intendi quando parli di "conflitto di sintassi" tra i due.

E' possibile evitare l'uso di rtcwake modificando manualmente il contenuto di /sys/class/rtc/rtc0/wakealarm [vedi qui], ma è un metodo molto più complesso per ottenere lo stesso risultato.

Magari prova a dare qualche dettaglio in più sul tipo di conflitto che si verifica.

Ciao, Pippo.
Avatar utente
dante5351
Livello: BD-ROM (6/15)
Livello: BD-ROM (6/15)
Messaggi: 219
Iscritto il: dom gen 19, 2014 5:03 pm

Re: Risvegliare Pc da standby con crontab

Messaggio da dante5351 »

Ciao, PippoDJ, benritrovato.
Avevo gia' letto quel tuo post, insieme a centinaia di altri su cui ho sbattuto il grugno questi giorni.
Se ricordi qualche tempo fa ci siamo trovati per il problema della registrazione di RaiMovie (ed altro), e l'avevo risolto con uno script dove si faceva uso di rtcwake. Ora ho migliorato la procedura, usando i compiti pianificati di Linux, che gestisco tramite gnome-schedule, che e' la Gui di crontab; in essa imposto l'inizio e la fine della registrazione in modo molto semplice da usare. Mi resta da fare il wakeup da standby (da RAM).
Ho provato a mettere in crontab "sudo rtcwake -m no -u -t $(date +%s -d 'tomorrow 12:05')", cioe' il risveglio, nell'es domani alle 12:05.
Il conflitto consiste in questo: crontab mi impedisce di usare % perche' e' un carattere che usa lui.
Ora, lasciando da parte interventi manuali, che, sono d'accordo, sono piu' dispendiosi, o mi invento un modo di dire la data, es. gg/mm/yy hh:mm, oppure devo rinuciare a rtcwake; perche' naturalmente fare il conto dei secondi dall'epoca Unix non se ne parla proprio. Da quel che ho letto non sembra ci sia modo di far funzionare rtcwake senza passare per i secondi; il comando data ha tutti i parametri col %, percio' cercavo un'altra strada.
Una semplice passa per l'uso di apmsleep, ma qui c'e' un problema con acpi che gestisce il power management nel BIOS; un'altra era tramite nvram wakeup, che pero' non e' supportato dalla mia MB.
Se trovassi un comando (sto sognando) tipo sudo resume, da poter mettere in crontab avrei risolto alla grande.
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Avatar utente
CUB3
Moderatore
Moderatore
Messaggi: 3931
Iscritto il: lun gen 26, 2015 10:13 am

Re: Risvegliare Pc da standby con crontab

Messaggio da CUB3 »

"Let me tell you a secret: when you hear that the machine is “smart”, what it actually means is that it’s exploitable." Mikko Hypponen
Avatar utente
PippoDJ
Livello: Storage Area Network (12/15)
Livello: Storage Area Network (12/15)
Messaggi: 1678
Iscritto il: sab nov 01, 2014 3:50 pm

Re: Risvegliare Pc da standby con crontab

Messaggio da PippoDJ »

dante5351 ha scritto:Il conflitto consiste in questo: crontab mi impedisce di usare % perche' e' un carattere che usa lui.
OK adesso mi è più chiaro.
Mi vengono in mente almeno due metodi per risolvere.

Il primo è di inserire il carattere di escape "\" prima del "%": in pratica serve per comunicare a crontab che il "%" non lo deve gestire lui, ma lo deve passare a date così com'è. In pratica il tuo comando diventerebbe:

Codice: Seleziona tutto

sudo rtcwake -m no -u -t $(date +\%s -d 'tomorrow 12:05')
EDIT: Mentre io mi dilungavo in dettagli, CUB3 mi ha "sinteticamente" battuto sul tempo: ;)
Il secondo (più complicato, ma forse più elegante) prevede di creare uno script shell che contenga il codice per la conversione e di passargli la stringa della data come argomento. Crea un nuovo file resume.sh e copia al suo interno:

Codice: Seleziona tutto

rtcwake -m no -u -t $(date +%s -d "$1")
poi chiamalo dal tuo crontab con:

Codice: Seleziona tutto

sudo resume.sh 'tomorrow 12:05'
Ciao, Pippo.
Avatar utente
dante5351
Livello: BD-ROM (6/15)
Livello: BD-ROM (6/15)
Messaggi: 219
Iscritto il: dom gen 19, 2014 5:03 pm

Re: Risvegliare Pc da standby con crontab

Messaggio da dante5351 »

Mentre scrivevo:
Benritrovato CUB3: ma non avevi promesso che non mi avresti piu' aiutato? :twisted:
mi hai battuto sul tempo.
Dunque, ho creato un crontab dalla GUI col comando sudo rtcwake -m no -u -t -$(date +\%s d 'today 17:21') (grazie a CUB3), e , preso da crontab -l: 20 17 16 11 * sudo rtcwake -m no -u -t -$(date +\%s d 'today 17:21') # JOB_ID_11
Non mi ha dato errori in immissione. Poi ho aspettato fino alle 17:20 per far partire il rtcwake da crontab; alle 17:20:15 ho sospeso il pc da menu start. Ho atteso alle 17:21:45, ma il pc non si è riacceso.

Ora provero' la 2a soluzione, che pero' prima cambierei in

sudo rtcwake -m no -u -t $(date +%s -d "$1") perche' ho visto che dando il comando da terminale rtcwake esige il sudo;
resume.sh 'tomorrow 12:05' anche perche' se sudo lo metto qui nel crontab, potrebbe non avviarsi per mancanza di password allo scadere dell'orario del crontab.
Vi terro' aggiornati, e grazie ad entrambi

P.S. Porcavacca ho dimenticato un trattino davanti a d 'today 17:21. Rifaccio tutto da capo.
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Avatar utente
dante5351
Livello: BD-ROM (6/15)
Livello: BD-ROM (6/15)
Messaggi: 219
Iscritto il: dom gen 19, 2014 5:03 pm

Re: Risvegliare Pc da standby con crontab

Messaggio da dante5351 »

Riprovato con : 52 17 16 11 * sudo rtcwake -m no -u -t -$(date +\%s -d 'today 17:53') # JOB_ID_11 non ha funzionato.
Dato da terminale: rtcwake(nosleep).sh, il cui contenuto e': /home/dan/Video/Per_registrare/creaico.sh && sudo rtcwake -m no -u -t $(date +%s -d 'today 17:57') (la 1a parte per creare un'immagine sul desktop che mi ricorda che ho gia' dato i comandi per la registazione/resume da standby) HA funzionato.
Provero' pure la 2a soluzione, ma mi sembra che tra crontab e rtcwake ci sia un po' di maretta.
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Avatar utente
dante5351
Livello: BD-ROM (6/15)
Livello: BD-ROM (6/15)
Messaggi: 219
Iscritto il: dom gen 19, 2014 5:03 pm

Re: Risvegliare Pc da standby con crontab

Messaggio da dante5351 »

Scosa Pippo, non riesco a trovare un help con le spiegazioni su quel $ in (date +%s -d "$1") significa domani? adesso?
E quel sudo resume.sh 'tomorrow 12:05' ???
Perdona, ma sono della vecchia scuola, se non capisco, non so fare.
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Avatar utente
CUB3
Moderatore
Moderatore
Messaggi: 3931
Iscritto il: lun gen 26, 2015 10:13 am

Re: Risvegliare Pc da standby con crontab

Messaggio da CUB3 »

dante5351 ha scritto: ma non avevi promesso che non mi avresti piu' aiutato? :twisted:
Mi ero scordato :acch
:rotolo
dante5351 ha scritto:Dunque, ho creato un crontab dalla GUI col comando sudo rtcwake -m no -u -t -$(date +\%s d 'today 17:21') (grazie a CUB3), e , preso da crontab -l: 20 17 16 11 * sudo rtcwake -m no -u -t -$(date +\%s d 'today 17:21') # JOB_ID_11
Allora non ti dico che crontab non ha bisogno di sudo :-P
"Let me tell you a secret: when you hear that the machine is “smart”, what it actually means is that it’s exploitable." Mikko Hypponen
Avatar utente
dante5351
Livello: BD-ROM (6/15)
Livello: BD-ROM (6/15)
Messaggi: 219
Iscritto il: dom gen 19, 2014 5:03 pm

Re: Risvegliare Pc da standby con crontab

Messaggio da dante5351 »

CUB3 ha scritto: Mi ero scordato :acch
:rotolo

Allora non ti dico che crontab non ha bisogno di sudo :-P
Consolati, se vieni a Roma ti offro una birra :brindisi

Ed io non ti dico che senza il sudo, rtcwake non ti si fila proprio. Mentre naturalmente funziona col sudo, anche in crontab.
Ho provato, e subito dopo scattata l'ora del crontab ho dato: sudo rtcwake -m show -l. Senza il sudo rtcwake mi dava "alarm: off", stesso risultato del file con la data. In altri termini, l'accoppiata rtcwake e crontab funziona solo se a segnare il tempo e' -s ....., o se il comando con la data sta in un file sh, ovviamente.

Voglio provare a dare il comando data non con l'opzione -d , ma --data, una volta capita la sintassi, che non e' mai stata il mio forte, neanche in latino e greco.
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Avatar utente
CUB3
Moderatore
Moderatore
Messaggi: 3931
Iscritto il: lun gen 26, 2015 10:13 am

Re: Risvegliare Pc da standby con crontab

Messaggio da CUB3 »

dante5351 ha scritto:Ed io non ti dico che senza il sudo, rtcwake non ti si fila proprio. Mentre naturalmente funziona col sudo, anche in crontab.
È vero, hai ragione! Errore mio, crontab richiede sudo se il lavoro è programmato da un utente che non è root.

Naturalmente tu hai editato /etc/sudoers per eseguire rtcwake senza password, giusto?
"Let me tell you a secret: when you hear that the machine is “smart”, what it actually means is that it’s exploitable." Mikko Hypponen
Avatar utente
dante5351
Livello: BD-ROM (6/15)
Livello: BD-ROM (6/15)
Messaggi: 219
Iscritto il: dom gen 19, 2014 5:03 pm

Re: Risvegliare Pc da standby con crontab

Messaggio da dante5351 »

CUB3 ha scritto: È vero, hai ragione! Errore mio, crontab richiede sudo se il lavoro è programmato da un utente che non è root.
Neanche questo e' esatto: e' rtcwake che richiede il sudo, crontab mi esegue altri comandi anche se non sono root.
Esempio: per dare i tempi di registrazione ho creato 2 crontab. Il primo lancia uno script :
/home/dan/Video/Per_registrare/RegRaiMovie.sh il cui contenuto gia' conosciamo: ffmpeg -i http://stream10.rai.it/italy/raimovie.s ... 00000.m3u8 -c:v h264 -c:a mp3 /home/dan/Scrivania/RAIMovie-`date +%d.%m.%Y-h%R`.mp4.
Il secondo ferma la registrazione col comando: killall ffmpeg && rm /home/dan/Scrivania/registrazione-programmata && sudo pm-suspend, poi elimina il file da me creato (post delle 19:07) e rimette il pc in standby.
Con questi due crontab evito di dover toccare il file delle impostazioni di registrazione, e poi l'impostazione degli orari di inizio/fine registrazione e' piu' facile con la GUI. In entrambi i casi, come vedi, non c'e' traccia di sudo, pur non essendo io root, che anzi nella Mint l'utente root non viene neanche creato.

P.S. per Pippo: ho provato a lanciare da terminale il file resume.sh e poi ho controllato con sudo rtcwake -m show -l. Il risultato e' alarm off. Quel comando non funziona in ogni caso: sara' colpa della $ ?
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Avatar utente
dante5351
Livello: BD-ROM (6/15)
Livello: BD-ROM (6/15)
Messaggi: 219
Iscritto il: dom gen 19, 2014 5:03 pm

Re: Risvegliare Pc da standby con crontab

Messaggio da dante5351 »

dante5351 ha scritto:
CUB3 ha scritto: È vero, hai ragione! Errore mio, crontab richiede sudo se il lavoro è programmato da un utente che non è root.
Neanche questo e' esatto: e' rtcwake che richiede il sudo, crontab mi esegue altri comandi anche se non sono root.
Esempio: per dare i tempi di registrazione ho creato 2 crontab. Il primo lancia uno script :
/home/dan/Video/Per_registrare/RegRaiMovie.sh il cui contenuto gia' conosciamo: ffmpeg -i http://stream10.rai.it/italy/raimovie.s ... 00000.m3u8 -c:v h264 -c:a mp3 /home/dan/Scrivania/RAIMovie-`date +%d.%m.%Y-h%R`.mp4.
Il secondo ferma la registrazione col comando: killall ffmpeg && rm /home/dan/Scrivania/registrazione-programmata && sudo pm-suspend, poi elimina il file da me creato (post delle 19:07) e rimette il pc in standby.
Con questi due crontab evito di dover toccare il file delle impostazioni di registrazione, e poi l'impostazione degli orari di inizio/fine registrazione e' piu' facile con la GUI. In entrambi i casi, come vedi, non c'e' traccia di sudo, pur non essendo io root, che anzi nella Mint l'utente root non viene neanche creato.

P.S. per Pippo: ho provato a lanciare da terminale il file resume.sh e poi ho controllato con sudo rtcwake -m show -l. Il risultato e' alarm off. Quel comando non funziona in ogni caso: sara' colpa della $ ?
No ho crato un file my-settings in /etc/sudoers.d con le impostazioni dei comandi per il power managemente: rtcwake, pm-suspend e shutdown
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Avatar utente
dante5351
Livello: BD-ROM (6/15)
Livello: BD-ROM (6/15)
Messaggi: 219
Iscritto il: dom gen 19, 2014 5:03 pm

Re: Risvegliare Pc da standby con crontab

Messaggio da dante5351 »

annullato
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Avatar utente
CUB3
Moderatore
Moderatore
Messaggi: 3931
Iscritto il: lun gen 26, 2015 10:13 am

Re: Risvegliare Pc da standby con crontab

Messaggio da CUB3 »

dante5351 ha scritto:Neanche questo e' esatto: e' rtcwake che richiede il sudo, crontab mi esegue altri comandi anche se non sono root.
Si, ovvio, mi sono espresso male. Il sudo non è legato direttamente a crontab ma all'applicazione lanciata se questa richiede i permessi di root.
dante5351 ha scritto:nella Mint l'utente root non viene neanche creato.
:bisbiglio L'utente root c'è ma è disabilitata la possibilità di fare il login come tale.
"Let me tell you a secret: when you hear that the machine is “smart”, what it actually means is that it’s exploitable." Mikko Hypponen
Avatar utente
dante5351
Livello: BD-ROM (6/15)
Livello: BD-ROM (6/15)
Messaggi: 219
Iscritto il: dom gen 19, 2014 5:03 pm

Re: Risvegliare Pc da standby con crontab

Messaggio da dante5351 »

CUB3 ha scritto: :bisbiglio L'utente root c'è ma è disabilitata la possibilità di fare il login come tale.
Si, ovvio, mi sono espresso male.
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Avatar utente
PippoDJ
Livello: Storage Area Network (12/15)
Livello: Storage Area Network (12/15)
Messaggi: 1678
Iscritto il: sab nov 01, 2014 3:50 pm

Re: Risvegliare Pc da standby con crontab

Messaggio da PippoDJ »

dante5351 ha scritto:Scosa Pippo, non riesco a trovare un help con le spiegazioni su quel $ in (date +%s -d "$1") significa domani? adesso?
E quel sudo resume.sh 'tomorrow 12:05' ???
Il $1 è una variabile che prende il valore del parametro con cui viene eseguito lo script.
In pratica: se lo script resume.sh contiene:
rtcwake -m no -u -t $(date +%s -d "$1")
e tu lo esegui con:
resume.sh 'tomorrow 12:05'
il parametro 'tomorrow 12:05' viene passato allo script e sostituito al $1, con il risultato di eseguire:
rtcwake -m no -u -t $(date +%s -d 'tomorrow 12:05')
ho provato a lanciare da terminale il file resume.sh e poi ho controllato con sudo rtcwake -m show -l. Il risultato e' alarm off. Quel comando non funziona in ogni caso: sara' colpa della $ ?
Non può funzionare senza il parametro che contiene l'orario a cui vuoi che il PC si riaccenda. Devi lanciarlo così:
resume.sh 'tomorrow 12:05'

Ma... se non ha funzionato il primo metodo, non credo possa funzionare neanche il secondo: evidentemente il problema è altrove.
Forse ha a che fare con la differenza tra orario "locale" e orario "UTC".
Pertanto ti proporrei una piccola variazione di resume.sh:

Codice: Seleziona tutto

rtcwake -m no -u -s $(( $(date +%s -d "$1") - $(date +%s) ))
in cui lo script si occupa di calcolare la differenza tra la data di accensione [date +%s -d "$1"] e quella attuale [date +%s], per passare poi il risultato, in secondi, a rtcwake, ma questa volta usando l'opzione "-s".
In questo modo si dovrebbero eliminare eventuali incongruenze di orari, visto che la differenza viene calcolata su tipi di data omologhi.
Perdona, ma sono della vecchia scuola, se non capisco, non so fare.
E' proprio così che dovrebbe essere, no? ;)
Avatar utente
dante5351
Livello: BD-ROM (6/15)
Livello: BD-ROM (6/15)
Messaggi: 219
Iscritto il: dom gen 19, 2014 5:03 pm

Re: Risvegliare Pc da standby con crontab

Messaggio da dante5351 »

PippoDJ ha scritto: E' proprio così che dovrebbe essere, no? ;)
Per me e per te, evidentemente si.
Ma nel mondo informatico in generale, ed in maniera ossessiva in quello di Linux, ad ogni domanda che uno fa', la risposta e' immancabilmente: fai cosi', senz'altra spiegazione; o peggio ancora: installa questo e quest'altro.
Tu sei un'ccezione, molto gradita debbo dire; anzi penso che dovresti fare il divulgatore, che in Linux ce n'e' proprio bisogno, visto che hai la capacita' di esporre chiaramente e con poche parole i problemi. :clap Ora bando alle sviolinature.
Dopo aver testato tanto resume.sh, quanto un resume1.sh creato di nuovo anzichè variare il 1°, che non funzionavano in crontab, e dopo essermi dato uno schiaffo in fronte :acch :acch :acch mi sono ricordato che il comando non e' rtcwake, ma sudo rtcwake, ed allora, variati al loro interno, hanno funzionato entrambi.

Non mi resta che limare il tutto, nel senso di unire in uno i crontab di riavvio da standby e quello di inizio registrazione, mettendoci in mezzo uno wait 10sec o comando simile, per dare il tempo al sistema di risvegliarsi completamente, ripristinare la connessione internet etc.
A questo punto mi sono creato il mio videoregistratore streaming, dove di volta in volta bastera' variare i parametri dei 2 crontab con gli orari di inizio e fine; se poi mi creo altrettanti file coi parametri di altri canali tv, bisognera' sostituire al file registraRaiMovie, i vari registrarai1, reistrairis, etc etc.
Davvero non so come ringraziarti :grazie :grazie :grazie ,
Solo un'ultima cosa, abusando della tua pazienza: mi linki qualche pagina con esempi sull'uso di quel carattere $ all'interno del comando date? Che mi sa che puo' essere infinitamente utile.
Ciao Dante e di nuovo :grazie
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Avatar utente
dante5351
Livello: BD-ROM (6/15)
Livello: BD-ROM (6/15)
Messaggi: 219
Iscritto il: dom gen 19, 2014 5:03 pm

Re: Risvegliare Pc da standby con crontab

Messaggio da dante5351 »

Non sono riuscito a riunire i crontab. per cui ne ho 3:
1° : per risvegliare il pc da standby(ram) col comando "~/Scrivania/resume.sh 'tomorrow 18:43' " dove il file resume contiene: "/home/dan/Video/Per_registrare/creaico.sh && sudo rtcwake -m no -u -t $(date +%s -d "$1")".. La 1a parte copia un'immagine di avviso su desktop, la 2a lascia acceso il pc, che mettero' in standby manualmente, e si risvegliera' domani alle 18:43, che posso far partire anche tra 1 minuto;
2°: per registrare col comando "~/Video/Per_registrare/RegRaiMovie.sh" dove il RegRaiMovie.sh contiene "ffmpeg -i http://stream10.rai.it/italy/raimovie.s ... 00000.m3u8 -c:v h264 -c:a mp3 /home/dan/Scrivania/RAIMovie-`date +%d.%m.%Y-h%R`.mp4", che partira' all'ora di inizio della registrazione, nell'es 18:44 di domani.
3° : per fine registrazione/eliminazione di immagine di avviso/ rimessa in standby del pc col comando "killall ffmpeg && rm /home/dan/Scrivania/registrazione-programmata && sudo pm-suspend", con l'ora di fine registrazione.
Le virgolette ovviamente sul crontab non ci sono.

Ho provato a riunire i primi due comandi in un crontab con orario 17:40 di oggi colla stringa "~/Scrivania/resume.sh 'tomorrow 18:43' && sleep 15 && ~/Video/Per_registrare/RegRaiMovie.sh" ma non mi ha funzionato perche' la registrazione, anzichè partire alle 18:43, cioe' dopo l'ora del resume, partiva alle 17:40:15 di oggi. Io mi aspettavo che la 2a parte del comando partisse dopo la fine dell'esecuzione della 1a, cioe' dopo il resume del pc; ma cosi' non è stato, come se quel 'tomorrow 18:43' non fosse scritto.
Quel 'tomorrow 18:43' evidentemente non tollera la vicinanza con &&.
Pazienza
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Avatar utente
CUB3
Moderatore
Moderatore
Messaggi: 3931
Iscritto il: lun gen 26, 2015 10:13 am

Re: Risvegliare Pc da standby con crontab

Messaggio da CUB3 »

Puoi unire gli script "resume.sh" e "RegRaiMovie.sh" (ma anche il creaico.sh) in unico script. Invece di unire le operazioni con "&&" è sufficiente che tu scriva un comando per ogni riga.
"Let me tell you a secret: when you hear that the machine is “smart”, what it actually means is that it’s exploitable." Mikko Hypponen
Avatar utente
dante5351
Livello: BD-ROM (6/15)
Livello: BD-ROM (6/15)
Messaggi: 219
Iscritto il: dom gen 19, 2014 5:03 pm

Re: Risvegliare Pc da standby con crontab

Messaggio da dante5351 »

Io sto usando la GUI per crontab, perchè così non devo toccare gli scripts, ma solo modificare di volta in volta gli orari dei crontab; e naturalmente la GUI non accetta comandi su più righe.
Poi chissà per quale motivo non funziona la concatenazione dei comandi che ho tentato di fare
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Avatar utente
CUB3
Moderatore
Moderatore
Messaggi: 3931
Iscritto il: lun gen 26, 2015 10:13 am

Re: Risvegliare Pc da standby con crontab

Messaggio da CUB3 »

xP Scusa dante5351 ma mi ci hai fatto un po' incrociare gli occhi con questi script... :)

Lo script "resume.sh 'tomorrow 18:43'" NON deve essere messo in crontab in quanto già da se programma il risveglio del computer, giusto?
Per questo, puoi unire il contenuto dello script "creaico.sh" (che immagino contenga un comando "cp" o simile) con "resume.sh".

In crontab (da GUI) non ti rimane che programmare l'avvio e l'arresto della registrazione.

Ma naturlamente tu intendevi fare tutto con uno solo comando, corretto?
"Let me tell you a secret: when you hear that the machine is “smart”, what it actually means is that it’s exploitable." Mikko Hypponen
Avatar utente
dante5351
Livello: BD-ROM (6/15)
Livello: BD-ROM (6/15)
Messaggi: 219
Iscritto il: dom gen 19, 2014 5:03 pm

Re: Risvegliare Pc da standby con crontab

Messaggio da dante5351 »

Il mio post del 17/11/2015, 19:33 e' un riepilogo finale con la soluzione del problema: creare un videoregistratore streaming.

Mi dispiace per i tuoi occhi, ma letto attentamente mi pare spieghi tutto punto per punto, anche se io non ho la facilita' di esposizione di PIppoDj. Lo script "resume.sh 'tomorrow 18:43'" contiene al suo interno rtcwake ed è scritto con la sintassi proposta da PippoDJ nel post del 16/11/2015, 17:18, proprio per farlo digerire da crontab.. Finora io avevo gestito lo standby con uno script; che mi costringeva a fare i salti tra cartelle, file, apps. Ora e' tutto riunito in un'unica finestra, quella della GUI di crontab.
Esempio preso da crontab -l da terminale: 30 18 17 11 * ~/Video/Per_registrare/resume.sh 'today 18:43' # JOB_ID_11. Cioè: il 17/11 alle h 18:30, avvia resume.sh che avvia rtcwke (ossia non mettere in standby ora, che lo faro' io, pero' risveglia il pc alle 18:43). A questo, è attaccato quel creaico.sh, che hai capito bene. E questo e' il 1° crontab. il resto segue, e hai capito bene, che volevo accorpare il 1° + il 2°. Se ci fossi riuscito, avrei 2 crontab. Il 1° che gestisce riavvio/avviso/inizio registrazione ed il 2° che gestisce la fine registrazione etc. etc.
Non si puo' fare un unico file crontab con script perche' per gestire il tempo di registrazione dovrei usare una opzione di ffmpeg, e quindi sarei costretto ad entrare nello script ogni volta, cosa che non voglio fare per due buoni motivi, cioe' per non pasticciare il "cuore" della procedura e poi perche' con la GUI di crontab (gnome-schedule) e' tutto più facile.
Così mi tengo i 3 crontab.
Con questo riepilogo ho voluto rendere disponibile il risultato delle due discussioni che abbiamo condotto io, te e PippoDj in forma sintetica, per chiunque volesse farsi un videoregistratore streaming semplice da usare, senza ricorrere a programmi che non certo abbondano. Io almeno conosco solo Mithtv che ha una funzione cosi'.
Per cui mi mancano solo quei link che ho chiesto a Pippodj sulla variabile $ per scrivere RISOLTO
Con il Pc e' come con i bambini, ci vuole pazienza, ed un po' di modestia.
Avatar utente
PippoDJ
Livello: Storage Area Network (12/15)
Livello: Storage Area Network (12/15)
Messaggi: 1678
Iscritto il: sab nov 01, 2014 3:50 pm

Re: Risvegliare Pc da standby con crontab

Messaggio da PippoDJ »

dante5351 ha scritto:Poi chissà per quale motivo non funziona la concatenazione dei comandi che ho tentato di fare
Ciao, credo che il problema sia nel comando rtcwake usato con l'opzione "-m no" (che impedisce la sospensione istantanea del PC, lasciando all'utente la possibilità di effettuarla manualmente).
Senza quell'opzione, i comandi successivi a rtcwake, vengono eseguiti al risveglio della macchina (come ti aspetti), ma se la macchina non viene messa in standby da rtcwake (con l'opzione "-m no"), i comandi successivi vengono eseguiti subito.
In pratica credo che si verifichi qualcosa del genere:

Codice: Seleziona tutto

rtcwake -m standby -s 300 && comando eseguito solo al risveglio del PC (dopo 5 minuti)
rtcwake -m no -s 300 && comando eseguito subito senza attendere il risveglio del PC
Purtroppo non ho trovato documentazione al riguardo e non ho a disposizione una macchina Linux per verificare questa mia ipotesi, ma se fosse così, basterebbe lasciar fare a rtcwake il suo lavoro (mettere in sospensione il PC nel momento in cui viene invocato) e il tuo meccanismo dovrebbe funzionare.

Ma aggiungiamo un altro po' di carne al fuoco... esiste una cartella speciale:
/etc/pm/sleep.d/
qualunque script inserito in quella cartella, viene eseguito sia al momento della sospensione, sia al momento del risveglio.
A noi interessa solo il "momento del risveglio", quindi un ipotetico script dovrebbe essere realizzato circa così:

Codice: Seleziona tutto

# script da inserire nella cartella /etc/pm/sleep.d/
if [ "$1" = "resume" ]
then
    # inserire qui i comandi da eseguire al momento del resume

fi
In pratica, per evitare che i comandi dello script vengano eseguiti anche al momento della sospensione, controlliamo se il parametro è uguale a "resume" e, solo in quel caso, gli lasciamo fare le operazioni richieste. [i dettagli qui]
Credo sia una strada interessante da seguire, subito prima di mettere il PC in sospensione, il tuo script potrebbe copiare in quella cartella un altro script contenente i comandi per la videoregistrazione e...

Ciao, Pippo.

P.S.: Grazie per le "sviolinature"! :)
Avatar utente
PippoDJ
Livello: Storage Area Network (12/15)
Livello: Storage Area Network (12/15)
Messaggi: 1678
Iscritto il: sab nov 01, 2014 3:50 pm

Re: Risvegliare Pc da standby con crontab

Messaggio da PippoDJ »

dante5351 ha scritto:Per cui mi mancano solo quei link che ho chiesto a Pippodj sulla variabile $ per scrivere RISOLTO
Ah già dimenticavo.
Il simbolo "$" ha tantissimi usi diversi a seconda del contesto in cui viene inserito: in questa discussione ne abbiamo visti parecchi, ma mi sembra di capire che a te interessi il suo uso per definire quelli che ufficialmente si chiamano "parametri posizionali".
System
System
Bot ufficiale TurboLab.it
Bot
Messaggi:
Iscritto il: sab dic 31, 2016 6:19 pm
Contatta: Contatta

Re: Re: Risvegliare Pc da standby con crontab

Messaggio da System » mer nov 18, 2015 5:44 pm


Rispondi
  • Argomenti simili
    Risposte
    Visite
    Ultimo messaggio