J'utilise CentOS 5.5.
Nous avons plusieurs tâches cron stockées dans /etc/cron.daily/. Nous aimerions que l'e-mail pour certains de ces cronjobs soit envoyé à une adresse e-mail particulière, tandis que le reste des e-mails dans /etc/cron.daily/ devrait aller à l'adresse e-mail par défaut (root @ localhost).
Les tâches cron dans /etc/cron.daily/ sont exécutées à partir du fichier / etc / crontab. / etc / crontab spécifie un champ 'MAILTO'. Puis-je remplacer cela en définissant MAILTO dans mon cronjob /etc/cron.daily/foo?
Quelle est la meilleure façon de gérer cela?
/etc/crontab
ne spécifie pas les valeurs par défaut.Réponses:
Réglage
[email protected]
en/etc/cron.daily/foo
ne fonctionne pas. La sortie du script n'est pas envoyée à [email protected].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:Cela enverra un e-mail à '[email protected]' avec le sujet qui est égal au chemin complet du script (par exemple
/etc/cron.daily/foo
).Voici ce qu'en dit Unixgeeks.org:
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.
Même chose, mais envoyez à syslog:
Voir également ma réponse sur ServerFault à Cronjob stderr pour déposer et envoyer un e-mail
la source
Une solution plus élégante serait d'utiliser
/etc/cron.d
directement. Au lieu d'avoir votre script/etc/cron.daily
, placez-le quelque part comme/usr/local/sbin/myscript.sh
, puis créez le fichier/etc/cron.d/myscript
comme:Cela vous donne également beaucoup plus de contrôle sur le moment où le travail se déroule; par exemple uniquement certains jours de la semaine, etc. Consultez l'
crontab(5)
homme pour plus d'informations.la source
En supposant que vous disposez d'un accès SA sur cette machine, vous pouvez créer un nouveau compte utilisateur, ajouter les tâches à ces tâches cron de comptes. Le courrier de cet utilisateur peut ensuite être transféré à l'aide d'un fichier .forward dans ce dossier d'accueil des comptes. Vous devrez peut-être configurer des autorisations pour cet utilisateur si les tâches cron nécessitent un accès privilégié.
Que ce soit la réponse de Stefan ou celle qui convient le mieux dépend vraiment de la quantité de tracas que vous voulez pour la configurer et si vous voulez que les messages d'erreur soient envoyés à l'e-mail racine ou aux personnes qui surveillent normalement la sortie quotidienne.
Bonne chance
la source