Jak mogę powstrzymać crona przed wysłaniem mi e-maila z wynikami zaplanowanych przeze mnie zadań?
Jak mogę powstrzymać crona przed wysłaniem mi e-maila z wynikami zaplanowanych przeze mnie zadań?
Odpowiedzi:
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
lub stderr
.
Jeśli jest to skrypt, który napisałeś, spraw, aby był mniej gadatliwy - usuń niepotrzebne echo
lub print
instrukcje. Przekierowanie stdout
do /dev/null
jest również prawidłowym rozwiązaniem:
2 * * * * /my/script > /dev/null
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ą ...
2 * * * * /my/script > /dev/null 2> /dev/null
.. 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:
command_which_prints_messages_to_stderr 2>&1 # redirect stderr to stdout
... 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