Czy mogę zmienić domyślnego odbiorcę poczty w zadaniach cron?

12

Uważam, że jeśli dane wyjściowe z cronjob są wysyłane do użytkownika, do którego należy zadanie. Myślę, że możesz także dodać coś [email protected]na górze pliku cron, aby zmienić miejsce, do którego wysyłane jest wyjście.

Czy mogę ustawić opcję, aby zadania cron root w całym systemie były wysyłane pocztą e-mail zamiast do użytkownika, który je uruchamia? (tj. aby nie musiałem ustawiać tego w pliku cron każdego użytkownika)

cwd
źródło

Odpowiedzi:

9

Sprawdź /etc/crontabplik i ustaw MAILTO=roottam. Może również potrzebować w /etc/rcpliku

crondwydaje się akceptować zmienną MAILTO, chyba nie jestem do końca pewien, ale warto spróbować zmienić zmienną środowiskową dla crond przed jego uruchomieniem. Podobnie jak w skrypcie /etc/sysconfig/crondlub /etc/rc.d/init.d/crondźródle wcześniejszego pliku.

Przykład:

[centos@centos scripts]$ strings /usr/sbin/crond | grep -i mail
ValidateMailRcpts
MailCmd
cron_default_mail_charset
usage:  %s [-n] [-p] [-m <mail command>] [-x [
CRON_VALIDATE_MAILRCPTS
mailed %d byte%s of output but got status 0x%04x
[%ld] no more grandchildren--mail written?
MAILTO
/usr/sbin/sendmail
mailcmd too long
[%ld] closing pipe to mail
MAIL
Nikhil Mulley
źródło
Dziękuję bardzo! +1. Być może umieść dolną część odpowiedzi w formacie preformat / code?
cwd 16.12.11
7

Umieścić MAILTO=rootw /etc/default/cron. Ten plik zawiera domyślne ustawienia crona.

man 5 crontab mówi,

Jeśli MAILTO jest zdefiniowane (i niepuste), poczta jest wysyłana do użytkownika o takiej nazwie.

Zobacz: http://man.cx/cron(1)#heading4

Sachin Divekar
źródło
gdzie? dla pliku crontab każdego użytkownika?
Nikhil Mulley,
@Nikhil sprawdź moją zaktualizowaną odpowiedź.
Sachin Divekar,
1
działa tylko dla użytkowników, których crontab ma to. Czy to zadziała, jeśli któryś z użytkowników nie ma ustawionej tej zmiennej? Myślę, że @Cwd poprosił specjalnie o ustawienie globalne dla wszystkich użytkowników.
Nikhil Mulley,
@SachinDivekar -1 Nikhil ma rację. Zredagowałeś też moje pytanie i zmieniłeś jego znaczenie. Edytowane znaczenie jest zgodne z twoją odpowiedzią, ale nie o to prosiłem.
cwd
2
To mi nie działa. Ustawiłem MAILTO w pliku domyślnym i zrestartowałem usługę cron, ale nadal wysyła do roota (próbuję wysłać na zewnętrzny adres e-mail)
peedee