Réglage MAILTO=user@example.org
en /etc/cron.daily/foo
ne fonctionne pas. La sortie du script n'est pas envoyée à user@example.org.
La page http://www.unixgeeks.org/security/newbie/unix/cron-1.html propose également une solution simple:
Le fichier /etc/cron.daily/foo
contient désormais les éléments suivants:
#!/bin/sh
/usr/bin/script 2>&1 | mailx -s "$0" stefanl@example.org
Cela enverra un e-mail à 'stefanl@example.org' avec le sujet qui est égal au chemin complet du script (par exemple /etc/cron.daily/foo
).
Voici ce qu'en dit Unixgeeks.org:
Sortie de cron
Comme je l'ai déjà dit, la sortie de cron est envoyée au propriétaire du processus, ou à la personne spécifiée dans la variable MAILTO, mais que faire si vous ne le souhaitez pas? Si vous souhaitez envoyer la sortie à quelqu'un d'autre, vous pouvez simplement diriger la sortie vers la messagerie de commande. par exemple
cmd | mail -s Utilisateur "Objet du courrier"
Parfois, je veux seulement recevoir les erreurs d'un cronjob, pas de la sortie standard, donc j'utilise cette astuce. La syntaxe peut sembler fausse à première vue, mais soyez assuré que cela fonctionne. Le cronjob suivant enverra STDOUT à / dev / null, puis gérera STDERR via le pipeline.
doit 2>&1 >/dev/null | mailx -s "$0" stefanl@example.org
Même chose, mais envoyez à syslog:
doit 2>&1 >/dev/null | /usr/bin/logger -t $ME
Voir également ma réponse sur ServerFault à Cronjob stderr pour déposer et envoyer un e-mail
/etc/crontab
ne spécifie pas les valeurs par défaut.