Impostazione MAILTO=user@example.org
in /etc/cron.daily/foo
non funziona. L'output dello script non viene inviato a user@example.org.
La pagina all'indirizzo http://www.unixgeeks.org/security/newbie/unix/cron-1.html suggerisce anche una soluzione semplice:
Il file /etc/cron.daily/foo
ora contiene quanto segue:
#!/bin/sh
/usr/bin/script 2>&1 | mailx -s "$0" stefanl@example.org
Questo invierà un'e-mail a "stefanl@example.org" con l'oggetto uguale al percorso completo dello script (ad es /etc/cron.daily/foo
.).
Ecco cosa dice Unixgeeks.org al riguardo:
Uscita da cron
Come ho detto prima, l'output di cron viene inviato al proprietario del processo o alla persona specificata nella variabile MAILTO, ma cosa succede se non lo si desidera? Se si desidera inviare l'output a qualcun altro, è possibile semplicemente inviare l'output alla posta di comando. per esempio
cmd | mail -s Utente "Oggetto della posta"
A volte, voglio solo ricevere gli errori da un cronjob, non dallo stdout, quindi uso questo trucco. La sintassi può sembrare sbagliata a prima vista, ma state certi che funziona. Il seguente cronjob invierà STDOUT a / dev / null e quindi gestirà STDERR tramite la pipeline.
doit 2>&1 >/dev/null | mailx -s "$0" stefanl@example.org
Stessa cosa, ma invia a syslog:
doit 2>&1 >/dev/null | /usr/bin/logger -t $ME
Vedi anche la mia risposta su ServerFault a Cronjob stderr su file ed e-mail
/etc/crontab
non specifica i valori predefiniti.