hcome faccio a disabilitare l’avviso email inviato da crontab? Quando il mio lavoro viene eseguito e i lavori non possono essere eseguiti normalmente, verrà inviata un’e-mail a root. Perché ricevo e-mail sul mio account root da cron? Come posso prevenire questo? Come posso disabilitare l’avviso e-mail inviato dai lavori cron su un sistema Linux o Unix?
Il comando crontab viene utilizzato per mantenere i file crontab per i singoli utenti. Per impostazione predefinita, l’output di un comando o di uno script (se presente) verrà inviato tramite posta elettronica all’account di posta elettronica locale. Per interrompere la ricezione dell’output di posta elettronica da crontab è necessario aggiungere le seguenti stringhe alla fine della voce crontab.
Dettagli tutorial |
Livello di difficoltà |
Facile |
Privilegi di root |
No |
Requisiti |
Sistema operativo Linux o Unix |
Est. momento della lettura |
2 minuti |
Cron job impedisce l’invio di errori e output
Per evitare l’invio di errori e output, aggiungi uno dei seguenti alla fine della riga per ogni cron job per reindirizzare l’output a /dev/null.
>/dev/null 2>&1
> /dev/null
> /dev/null 2>&1 || true
## send cron output to a log file ##
> /var/log/my.app.log 2>&1
Ciò impedirà lo spam del comando di posta quando si digita il comando di posta:
$ mail
Esempio di lavoro Cron per disabilitare l’avviso e-mail
Modifica/apri i tuoi lavori cron, inserisci:
$ crontab -e
Aggiungi stringa >/dev/null 2>&1 per interrompere l’avviso di posta:
0 1 5 10 * /path/to/script.sh >/dev/null 2>&1
O
0 1 5 10 * /path/to/script.sh > /dev/null
O
Solo guide per i sostenitori di Patreon ????
- Nessuna pubblicità e tracciamento
- Guide approfondite per sviluppatori e amministratori di sistema su Opensourceflare✨
- Unisciti al mio Patreon per supportare i creatori di contenuti indipendenti e iniziare a leggere le ultime guide:
Aderire Patreon ?
0 * * * * /path/to/command arg1 > /dev/null 2>&1 || true
In questo esempio, reindirizza semplicemente l’output a /dev/null soltanto:
0 30 * * * /root/bin/check-system-health.py > /dev/null
Possiamo usare la seguente sintassi quando si usa bash per reindirizzare sia stdout che stderr:
comando
1 30 * * * /root/bin/xyz-job &> /path/to/xyz.app.log.file
## Append instead of overwriting the log file ##
1 30 * * * /root/bin/xyz-job &>> /path/to/xyz.app.log.file
2 45 * * * /root/bin/foo-job &> /dev/null
Salva e chiudi il file. Vedere reindirizzare STDOUT e STDERR su null e “BASH Shell Redirect stderr To stdout (reindirizza stderr a un file)” per sopprimere l’output per ulteriori informazioni
Imposta la variabile MAILTO per impedire al demone cron di inviare email
Un’altra opzione è impostare MAILTO="" variabile all’inizio del file crontab o dello script della shell. Questo disabiliterà anche l’avviso e-mail. Modifica/apri i tuoi lavori cron:
$ crontab -e
Nella parte superiore del file, inserisci:
MAILTO=""
Ovviamente possiamo reindirizzare anche la posta a condizione che il server di posta come Postfix sia configurato:
MAILTO="admin@server1.cyberciti.biz"
Salva e chiudi il file. Possiamo mescolarli secondo le nostre esigenze. Per esempio:
## send email to backup team #
MAILTO="backup.admin@domain-here"
@daily /scripts/backup.sh
## send email to RAID/storage/san/nas admin ##
MAILTO="storage.admin@domain-here"
* 45 * * * /scripts/test-raid-array.sh
Un altro esempio:
## NO EMAIL ##
@weekly /scripts/containers-backup >/dev/null 2>&1
## Send email ##
MAILTO="sysadmin@corp2.domain-here"
@daily /scripts/test-raid-array.sh
## Disable email alert ##
MAILTO=""
@monthly /path/to/script/logs.sh > /var/log/monthly.log
ANNUNCIO
Ti e piaciuto questo articolo?
Supporta il mio lavoro, facendo una donazione!