Quali sono le opzioni disponibili per ottenere i risultati di cron e come impostarli?
-
09-06-2019 - |
Domanda
So che il comportamento predefinito di cron è quello di inviare output normali e di errore alla casella di posta elettronica locale del proprietario di cron.
Esistono altri modi per ottenere questi risultati (ad esempio inviarli via e-mail a un gruppo di persone, memorizzarli da qualche parte e così via)?
Soluzione
Potresti inserire il reindirizzamento dei file sul comando mostrato o sul comando effettivo nel crontab sia per stdout che per stderr - like command > /tmp/log.txt 2>&1
.
Se desideri che più utenti ricevano questo registro, puoi inserire un file MAILTO=nameofmailinglist
nella parte superiore del file cron.
Altri suggerimenti
Per inviare tramite e-mail l'output a un indirizzo e-mail diverso è sufficiente aggiungere la riga
MAILTO="user@example.com"
Al crontab prima del comando
La riga cron è proprio come qualsiasi altra riga di comando Unix, quindi puoi reindirizzare l'output su un altro programma.Cioè.
* * * * * /path/my/command > /my/email/script 2&>1
Questa potrebbe essere un'aggiunta non necessaria, ma per qualificare i comandi di reindirizzamento:
> reindirizza l'output standard
2 è un termine specifico della Bourne Shell che significa errore standard
1 è un termine specifico della Bourne Shell che significa output standard
2>&1 significa reindirizzare l'errore standard sull'output standard
Vedi anche il seguente articolo utile Reindirizzamento standard di input e output
Per quanto mi risulta hai tre opzioni:
- Reindirizzare l'output:in un file o in un programma che invierà via email i risultati come li desideri
- Usa MAILTO in cron e reindirizza l'e-mail a qualsiasi altro indirizzo singolo per tutti i tuoi lavori cron.
- Esegui il reindirizzamento nel tuo server o client di posta, dopo che cron lo ha inviato.