Qualcosa nello script chiama tput
binario. tput
tenta di ispezionare il $TERM
variabile per determinare il terminale corrente in modo che possa produrre le sequenze di controllo corrette. Non c'è un terminale quando cron è in esecuzione, quindi ottieni quell'errore da tput
.
Puoi assegnare manualmente un TERM
value al cron job (probabilmente dumb
o qualcosa di simile) o (e questa è probabilmente la soluzione migliore) puoi scoprire cosa sta chiamando tput
e rimuovi quella chiamata.
Il demone cron è 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 mail di sistema). L'"utente" è l'utente con cui hai effettuato l'accesso quando hai impostato il crontab. La posta conterrà messaggi di console e di errore. Su Ubuntu, il file di posta è visualizzabile in /var/mail/<username>
.
Se nessun $TERM
variabile è impostata, cron emetterà un tput: No value for $TERM and no -T specified
errore nel file di posta. Per interrompere questi errori, imposta $TERM
variabile usando TERM=dumb
(o un altro terminale disponibile nel tuo sistema, come xterm
) nel crontab. Il toe
comando ti mostrerà le definizioni di terminfo sul sistema corrente. Se ti manca quel comando, puoi vedere i dati grezzi in /usr/share/terminfo
sulla maggior parte dei sistemi Linux.
Anche se hai interrotto gli errori, potresti comunque ricevere la posta di sistema aggiunta con i messaggi della console. Questo file si riempirà come un registro nel tempo, quindi potresti voler interrompere questi messaggi. Per interrompere la posta del sistema cron, imposta MAILTO
variabile usando MAILTO=""
Quindi il tuo crontab potrebbe essere simile a:
MAILTO=""
TERM=xterm
* * * * * sh /path/to/myscript.sh
Puoi visualizzare il crontab (per l'utente con cui hai effettuato l'accesso) con 'crontab -l'.