Jak mogę powstrzymać crona przed wysłaniem mi e-maila z wynikami zaplanowanych przeze mnie zadań?
10
Ustawiając zmienną środowiskową „MAILTO” na „”
Coś jak:
SHELL=/bin/bash
MAILTO=
01 * * * * /your/path/to/script/here.sh
Jeśli chcesz, aby pojedyncze zadanie zatrzymało pocztę e-mail, po prostu dodaj do niego> / dev / null 2> i 1
Na przykład:
0 * * * * /home/script >/dev/null 2>&1
Cron tylko e-maile, czy istnieje wyjście, albo na
stdout
lubstderr
.Jeśli jest to skrypt, który napisałeś, spraw, aby był mniej gadatliwy - usuń niepotrzebne
echo
lubprint
instrukcje. Przekierowaniestdout
do/dev/null
jest również prawidłowym rozwiązaniem:Jeśli po wykonaniu tej czynności nadal otrzymujesz komunikaty, oznacza to, że wyjście jest włączone
stderr
, dlatego powinien to być błąd, który należy rozwiązać. Jeśli nie, możesz przekierowaćstderr
za/dev/null
pomocą ..... chociaż ignorowanie komunikatów o błędach jest ogólnie złym pomysłem! (Skąd będziesz wiedzieć, kiedy zadanie crona zostanie zerwane?)
Możesz przekierować dane wyjściowe określonego polecenia ze stderr na stdout, używając
2>&1
- na przykład:... następnie bezpośrednio
stdout
do/dev/null
zadania cron - w ten sposób wyciszysz głośne polecenie, nie tracąc komunikatów o błędachźródło