Ustawianie MAILTO=user@example.org
w /etc/cron.daily/foo
nie działa. Dane wyjściowe skryptu nie są wysyłane na adres użytkownik@example.org.
Strona http://www.unixgeeks.org/security/newbie/unix/cron-1.html sugeruje również proste rozwiązanie:
Plik /etc/cron.daily/foo
zawiera teraz następujące elementy:
#!/bin/sh
/usr/bin/script 2>&1 | mailx -s "$0" stefanl@example.org
Spowoduje to wysłanie wiadomości e-mail na adres „stefanl@example.org” z tematem równym pełnej ścieżce skryptu (np /etc/cron.daily/foo
.).
Oto, co na ten temat mówi Unixgeeks.org:
Wyjście z crona
Jak powiedziałem wcześniej, dane wyjściowe z crona są wysyłane pocztą do właściciela procesu lub osoby określonej w zmiennej MAILTO, ale co, jeśli tego nie chcesz? Jeśli chcesz wysłać dane wyjściowe do kogoś innego, możesz po prostu przesłać dane wyjściowe do poczty poleceń. na przykład
cmd | mail - użytkownik „Temat poczty”
Czasami chcę otrzymywać tylko błędy od kumpla, a nie od standardowego, więc używam tej sztuczki. Na pierwszy rzut oka składnia może wyglądać niepoprawnie, ale zapewniamy, że działa. Następujący cronjob wyśle STDOUT do / dev / null, a następnie obsłuży STDERR przez potok.
doit 2>&1 >/dev/null | mailx -s "$0" stefanl@example.org
To samo, ale wyślij do syslog:
doit 2>&1 >/dev/null | /usr/bin/logger -t $ME
Zobacz także moją odpowiedź na ServerFault do Cronjob stderr na plik i e-mail
/etc/crontab
nie określa wartości domyślnych.