Яку електронну пошту cron використовує для надсилання пошти?


12

Я намагаюся налагоджувати проблему, коли cron не надсилає пошту на вікно Centos 6, яке я не налаштовував. Як я можу визначити, який поштовий крон використовується для надсилання пошти? Сторінка чоловіка crontab має частково сказане:

Окрім LOGNAME, HOME та SHELL, cron (8) буде дивитись на MAILTO, якщо у нього є якісь причини надсилати пошту в результаті виконання команд у "цьому" кронтабі. Якщо MAILTO визначено (і не порожнє), пошта надсилається користувачеві з таким ім'ям. Якщо MAILTO визначений, але порожній (MAILTO = ""), пошта не надсилатиметься. Інакше пошта надсилається власнику кронтабу. Цей параметр корисний, якщо ви вибрали / bin / mail замість / usr / lib / sendmail як пошту, коли ви встановлюєте cron - / bin / mail не робить згладжування, і UUCP зазвичай не читає свою пошту.

Частина зірочками - це та частина, яка мене цікавить "Ну, це sendmail чи пошта?"

Відповіді:


3

Швидкий Google показує мені, що /etc/sysconfig/crondце файл, який визначає, яку пошту використовує cron.


Мій Google-фу, мабуть, жахливий, тому що я витратив на це багато часу, шукаючи. Дякую.
cbmanica

23

Відповідно до сторінки man для cron (8) (демон, який фактично надсилає повідомлення):

   -m     This  option  allows you to specify a shell command string to use for 
          sending cron mail output instead of sendmail(8).  This command must 
          accept a fully formatted mail message (with headers) on stdin and send
          it as a mail message to the recipients specified in the mail headers.

Це приводить мене до думки, що він використовує sendmail за замовчуванням. Давайте перевіримо за допомогою стрази:

Налаштуйте роботу cron, яка створюватиме електронну пошту:

user@host1 ~:
$ crontab -e
crontab: installing new crontab
user@host1 ~:
$ crontab -l
MAILTO=example@example.com
*/5 * * * * echo "testing"

Тепер знайдіть ідентифікатор процесу для crond:

user@host1 ~:
$ ps auxww | grep crond
root      9684  0.0  0.0 117280  1296 ?        Ss   Jul22   0:17 crond
user     36344  0.0  0.0 103240   884 pts/2    S+   23:01   0:00 grep crond

Прикріпіть до крону процес з допомогою шнура, шукаючи пов’язану з процесом активність. Як strace пише stderr, я перенаправив його на stdout і перейшов на "mail":

root@host1 ~:
# strace -fp 9684 -s 1024 -e trace=process 2>&1 | grep mail
[pid 36204] execve("/usr/sbin/sendmail", ["/usr/sbin/sendmail", "-FCronDaemon", "-i", "-odi", "-oem", "-oi", "-t", "-f", "root"], [/* 16 vars */]) = 0
^C

Так, це поштова пошта.


4
У тестованій системі.
mfinni

3
Право, яке CentOS як позначене в цьому питанні, у його конфігурації за замовчуванням.
yoonix

2
Я знаю, що я стукнув тут про стомлений барабан, але це налаштований параметр, і питання стосувалося системи, яку запитувач не налаштував. Електронна пошта може бути попередньо змінена за замовчуванням для відповідної системи. Запитувач знає за замовчуванням.
mfinni

6
Правильно, але в конфігурації за замовчуванням, нічого не посилається на пошту у конфігураційному файлі (мінус коментарів, весь вміст є CRONDARGS=). Справа в тому, що це налаштовується, тому я включив кроки, щоб перевірити себе.
yoonix
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.