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
OK adesso mi è più chiaro.dante5351 ha scritto:Il conflitto consiste in questo: crontab mi impedisce di usare % perche' e' un carattere che usa lui.
Codice: Seleziona tutto
sudo rtcwake -m no -u -t $(date +\%s -d 'tomorrow 12:05')
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:CUB3 ha scritto:Da Wikipedia, sezione "Errori comuni"
Codice: Seleziona tutto
rtcwake -m no -u -t $(date +%s -d "$1")
Codice: Seleziona tutto
sudo resume.sh 'tomorrow 12:05'
Mi ero scordatodante5351 ha scritto: ma non avevi promesso che non mi avresti piu' aiutato?
Allora non ti dico che crontab non ha bisogno di sudodante5351 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
Consolati, se vieni a Roma ti offro una birraCUB3 ha scritto: Mi ero scordato
Allora non ti dico che crontab non ha bisogno di sudo
È vero, hai ragione! Errore mio, crontab richiede sudo se il lavoro è programmato da un utente che non è root.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.
Neanche questo e' esatto: e' rtcwake che richiede il sudo, crontab mi esegue altri comandi anche se non sono root.CUB3 ha scritto: È vero, hai ragione! Errore mio, crontab richiede sudo se il lavoro è programmato da un utente che non è root.
No ho crato un file my-settings in /etc/sudoers.d con le impostazioni dei comandi per il power managemente: rtcwake, pm-suspend e shutdowndante5351 ha scritto:Neanche questo e' esatto: e' rtcwake che richiede il sudo, crontab mi esegue altri comandi anche se non sono root.CUB3 ha scritto: È vero, hai ragione! Errore mio, crontab richiede sudo se il lavoro è programmato da un utente che non è 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 $ ?
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:Neanche questo e' esatto: e' rtcwake che richiede il sudo, crontab mi esegue altri comandi anche se non sono root.
L'utente root c'è ma è disabilitata la possibilità di fare il login come tale.dante5351 ha scritto:nella Mint l'utente root non viene neanche creato.
Si, ovvio, mi sono espresso male.CUB3 ha scritto: L'utente root c'è ma è disabilitata la possibilità di fare il login come tale.
Il $1 è una variabile che prende il valore del parametro con cui viene eseguito lo script.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' ???
Non può funzionare senza il parametro che contiene l'orario a cui vuoi che il PC si riaccenda. Devi lanciarlo così: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 $ ?
Codice: Seleziona tutto
rtcwake -m no -u -s $(( $(date +%s -d "$1") - $(date +%s) ))
E' proprio così che dovrebbe essere, no?Perdona, ma sono della vecchia scuola, se non capisco, non so fare.
Per me e per te, evidentemente si.PippoDJ ha scritto: E' proprio così che dovrebbe essere, no?
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).dante5351 ha scritto:Poi chissà per quale motivo non funziona la concatenazione dei comandi che ho tentato di fare
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
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
Ah già dimenticavo.dante5351 ha scritto:Per cui mi mancano solo quei link che ho chiesto a Pippodj sulla variabile $ per scrivere RISOLTO