Comment puis-je empêcher Cron de m'envoyer un e-mail aux résultats des emplois que je planifie?
En définissant la variable d'environnement "MAILTO" comme ""
Somethig aime:
SHELL=/bin/bash MAILTO= 01 * * * * /your/path/to/script/here.sh
Si vous souhaitez qu'un seul travail empêche le courrier électronique, il suffit d'ajouter> / dev / null 2> & 1 to it
Par exemple:
0 * * * * /home/script >/dev/null 2>&1
Cron ne vous envoie que des emails s'il existe une sortie, soit sur stdout
, soit sur stderr
.
Si c'est un script que vous avez écrit, rendez-le moins détaillé – supprimez les echo
ou print
instructions d' print
inutiles. La redirection de stdout
vers /dev/null
est également une solution valide:
2 * * * * /my/script > /dev/null
Si vous obtenez toujours des messages après avoir fait cela, alors la sortie est sur stderr
, il devrait donc s'agir d'une erreur, que vous devriez résoudre. Sinon, vous pouvez rediriger stderr
vers /dev/null
avec …
2 * * * * /my/script > /dev/null 2> /dev/null
.. Bien que ne pas tenir compte des messages d'erreur est généralement une mauvaise idée! (Comment saurez-vous quand le travail de cron est cassé?)
Vous pouvez rediriger la sortie d'une commande spécifique de stderr vers stdout en utilisant 2>&1
– par exemple:
command_which_prints_messages_to_stderr 2>&1 # redirect stderr to stdout
.. alors direct stdout
à /dev/null
dans votre travail cron – de cette façon, vous faites taire la commande forte, sans perdre les messages d'erreur