Come disabilitare gli alert email generati da eventi crontab

Il comando crontab viene utilizzato per mantenere i file crontab di ogni specifico utente. Per default l’output generato da un comando o uno script (in caso ne venga prodotto uno), viene inviato per posta all’email locale dell’account proprietario della crontab.

Disabilitare gli alert email provenienti da crontab

Per inibire l’invio degli output che scaturiscono dall’esecuzione dei cron job all’email locale dell’utente, possiamo utilizzare uno dei seguenti comandi

				
					> /dev/null 2>&1
> /dev/null
> /dev/null 2>&1 || true
				
			

Letteralmente questi tre comandi inoltrano l’output a /dev/nullche è il “null device” che scarta ogni input a lui indirizzato. Può essere utilizzato per sopprimere ogni output.

Inviare gli output di crontab ad un file di log

Alternativamente, se vogliamo tenere traccia in un file di log di quanto viene eseguito da crontab, possiamo reindirizzare l’output ad un file in questo modo

				
					> /var/log/my.app.log 2>&1
				
			

Questo comando sovrascrive sempre lo stesso file, quindi verrà mantenuto solo il risultato dell’ultima esecuzione. Se si vuole avere invece un log che storicizzi tutte le esecuzioni di un task dobbiamo reindirizzare l’output in questo modo

				
					>> /var/log/my.app.log 2>&1
				
			

Nel caso si adotti questa opzione, si ricorda che è necessario tenere monitorata l’occupazione della cartella /var/log ed eventualmente impostare un automatismo che ripulisca con una certa frequenza il contenuto dei log file.

Come pulire la casella di posta locale

Nel caso in cui la casella email locale /var/mail/[username] sia satura di email si può procedere allo svuotamento in questo modo

				
					> /var/mail/[username]
				
			

Per esempio, se l’account con cui vengono eseguiti i crontab si chiama alessandro, il comando per svuotare la casella email sarà il seguente

				
					> /var/mail/alessandro
				
			

Con questo comando stiamo letteralmente cancellando tutto il contenuto del file reindirizzando l’output di null al file che contiene le email. Come risultato otteniamo un file vuoto.

Come pulire la casella di posta locale usando il comando mail

Una opzione più gentile e che ci permette di eseguire una pulizia selettiva delle email contenute nel file è il comando mail.

Per usarlo è necessario installare mailutil.

				
					sudo apt install mailutils
				
			
Successivamente possiamo sfogliare la nostra mail usando il comando mail.
				
					mail
				
			

L’output restituito sarà simile al seguente

				
					"/var/mail/alessandro": 4 messages 4 new
>N   1 Cron Daemon        ven ott  7 17:07  39/1511  Cron <alessandro@raspberrypi> "$HOME"/scripts/monitoring.sh
 N   2 Cron Daemon        ven ott  7 17:08  39/1511  Cron <alessandro@raspberrypi> "$HOME"/scripts/monitoring.sh
 N   3 Cron Daemon        ven ott  7 17:09  39/1511  Cron <alessandro@raspberrypi> "$HOME"/scripts/monitoring.sh
 N   4 Cron Daemon        ven ott  7 17:10  39/1511  Cron <alessandro@raspberrypi> "$HOME"/scripts/monitoring.sh
 ?
				
			

Per cancellare tutte le email in un solo colpo digitiamo

				
					d *
				
			

Per cancellare una singola email digitiamo d seguito dal numero della mail che vogliamo eliminare

				
					d 3
				
			

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Most Recent

Come aggiungere e rimuovere utenti su Debian

Debian, così come tutte le altre distribuzioni Linux, è un sistema operativo multiutente. Ogni utente può avere differenti livelli di permission e specifici settaggi per

Partners