Arrêtez cron de m'envoyer un e-mail

10

Comment puis-je empêcher cron de m'envoyer par e-mail les résultats des travaux que je planifie?

Richard Hoskins
la source

Réponses:

15

En définissant la variable d'environnement "MAILTO" sur ""

Quelque chose comme:

SHELL=/bin/bash
MAILTO=



01 * * * *  /your/path/to/script/here.sh
OscarRyz
la source
12

Si vous voulez qu'un seul travail arrête le courrier électronique, vous y ajoutez simplement> / dev / null 2> & 1

Par exemple:

0 * * * * /home/script >/dev/null 2>&1
Rob
la source
1
Si vous êtes sûr qu'une exécution se terminera avant le prochain démarrage, il peut être utile de rediriger la sortie vers un fichier nommé plutôt que vers / dev / null: cela donne la possibilité de vérifier ce qui est arrivé à la dernière exécution si vous suspectez un problème.
mas
4

Cron ne vous envoie un e-mail qu'en cas de sortie, sur stdoutou stderr.

Si ce scénario de que vous avez écrit, le rendre moins bavard - supprimer inutiles echoou printdéclarations. La redirection stdoutvers /dev/nullest également une solution valable:

2 * * * * /my/script > /dev/null

Si vous obtenez toujours des messages après cela, alors la sortie est activée stderr, donc ce devrait être une erreur, que vous devez résoudre .. Sinon, vous pouvez rediriger stderrvers /dev/nullavec ..

2 * * * * /my/script > /dev/null 2> /dev/null

..mais ignorer les messages d'erreur est généralement une mauvaise idée! (Comment saurez-vous quand la tâche cron est interrompue?)

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

..then directement stdoutà /dev/nullvotre tâche cron - de cette façon vous taire la commande haute voix, sans perdre des messages d'erreur

dbr
la source