Wyłączanie powiadomienia mailem przez Cron’a

Domyśla konfiguracja crontab przesyła na lokalne konto użytkownika wynik działania skryptu (tzw. Output, czyli wszystkie komunikaty, które skrypt wyplułby na konsole gdyby go odpalić z reki). Jest to szczególnie wkurzające […]

Domyśla konfiguracja crontab przesyła na lokalne konto użytkownika wynik działania skryptu (tzw. Output, czyli wszystkie komunikaty, które skrypt wyplułby na konsole gdyby go odpalić z reki). Jest to szczególnie wkurzające dla konta root, które odpala skrypty często np. co 5min. Powoduje to straszną ilość spamu na koncie.

Aby nie otrzymywać maili od cron’a w takiej sytuacji należy dodać na końcu każdego zadania cron’a następujący string: >/dev/null 2>&1. lub &> /dev/null. Powoduje to przesądnie wyników działania skryptu na urządzenie /dev/null zamiast do nas.

Jak to zrobić:

1 . Otwieramy/Edytujemy listę zadań cron’a

# crontab –e

2. Dodajemy string na końcu (domyślna konsola to vi aby zacząć edycję wciskamy klawisz „i” po zakończeni edycji wciskamy „Esc” a następnie kombinację „:wq” co spowoduje zapisanie zmian i wyjście)

*/5 * * * * /ścieżka/do/skryptu >/dev/null 2>&1

lub

22 30 * * * /ścieżka/do/skryptu &> /dev/null

Najlepsze wyjaśnienie, co oznaczają gwiazdki i cyferki w tabelach cron znajdziecie na Wikipedii

3. Restartujemy cron’a

# /etc/init.d/crond restart

Możemy tez globalnie zakazać cron’owi wysyłania poczty wystarczy na początku pliku wpisać MAILTO=””

Jak to zrobić:

1. Otwieramy/Edytujemy listę zadań cron’a

# crontab –e

2. Dodajemy na początku (w pierwszej linii) pliku

MAILTO=""

3. No i oczywiście restart:

# /etc/init.d/crond restart

 

Tagi: ,