Il demone cron viene eseguito dall'utente "root" nella propria shell. Per impostazione predefinita, cron aggiungerà una mail di sistema inviata all'utente che esegue lo script (ecco perché vedi il mittente come 'root' nella posta di sistema). L'utente è l'utente in cui è stato effettuato l'accesso come quando si imposta crontab. La posta conterrà console e messaggi di errore. Su Ubuntu, il file di posta è visualizzabile su /var/mail/<username>
.
Se non è impostata la variabile $TERM
, cron emetterà un errore tput: No value for $TERM and no -T specified
nel file di posta. Per interrompere questi errori, impostare la variabile $TERM
utilizzando TERM=dumb
(o un altro terminale disponibile nel sistema, come xterm
) in crontab. Il comando toe
mostrerà le definizioni terminfo sul sistema corrente. Se manchi questo comando, puoi vedere i dati grezzi in /usr/share/terminfo
sulla maggior parte dei sistemi Linux.
Anche se sono stati interrotti gli errori, è comunque possibile ricevere la posta di sistema aggiunta con i messaggi della console. Questo file si riempirà come un log nel tempo, quindi potresti voler interrompere questi messaggi. Per interrompere la posta sistema di cron, impostare la variabile MAILTO
utilizzando MAILTO=""
Così il vostro crontab potrebbe essere simile:
MAILTO=""
TERM=xterm
* * * * * sh /path/to/myscript.sh
È possibile visualizzare la crontab (per l'utente che si è effettuato l'accesso come) con '-l crontab '.
fonte
2016-03-05 00:32:28
Io chiamo altre librerie, che potrebbero chiamare tput. Proverò ad assegnare un valore TERM e vedere se lo risolve – Seagull
Grazie! Ho appena impostato la variabile TERM su "stupido" come hai suggerito, e questo ha funzionato! – Seagull