Powstrzymaj crona od wysłania mi e-maila


10

Jak mogę powstrzymać crona przed wysłaniem mi e-maila z wynikami zaplanowanych przeze mnie zadań?

Odpowiedzi:


15

Ustawiając zmienną środowiskową „MAILTO” na „”

Coś jak:

SHELL=/bin/bash
MAILTO=



01 * * * *  /your/path/to/script/here.sh

12

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

1
Jeśli masz pewność, że jedno uruchomienie zakończy się przed następnym uruchomieniem, warto przekierować wyjście do pliku o nazwie zamiast do / dev / null: daje to opcję sprawdzenia, co się stało z ostatnim uruchomieniem, jeśli podejrzewasz, że problem.
mas

4

Cron tylko e-maile, czy istnieje wyjście, albo na stdoutlub stderr.

Jeśli jest to skrypt, który napisałeś, spraw, aby był mniej gadatliwy - usuń niepotrzebne echolub printinstrukcje. Przekierowanie stdoutdo /dev/nulljest 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ć stderrza /dev/nullpomocą ...

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 stdoutdo /dev/nullzadania cron - w ten sposób wyciszysz głośne polecenie, nie tracąc komunikatów o błędach

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.