У меня есть настройка cronjob для пользователя root. Однако, когда cron терпит неудачу, я должен получить электронное письмо от cronjob, потому что я установил MAILTO следующим образом в / etc / crontab:
MAILTO=my@email.com
Я установил mailx используя
yum install mailx
Но когда я смотрю на журнал cron, я получаю следующие строки:
Feb 23 14:13:01 internal crond[6858]: (root) CMD (/var/www/vded/build/bin/sync.sh)
Feb 23 14:13:01 internal crond[6857]: (root) MAIL (mailed 79 bytes of output but got status 0x0001 )
Как я могу это исправить?
ОБНОВИТЬ :
- Я установил mailx и sendmail, используя yum.
- Я начал sendmail.
- Так что теперь отправка электронной почты работает из командной строки!
Я получаю эту ошибку в почтовом журнале:
Feb 23 16:06:01 internal sendmail[7210]: o1NG61cd007210: from=root, size=425, class=0, nrcpts=1, msgid=<201002231606.o1NG61cd007210@internal.fff.com>, relay=root@localhost
Feb 23 16:06:01 internal sendmail[7211]: o1NG61hT007211: from=<root@internal.fff.com>, size=732, class=0, nrcpts=1, msgid=<201002231606.o1NG61cd007210@internal.fff.com>, proto=ESMTP, daemon=MTA, relay=localhost [127.0.0.1]
Feb 23 16:06:01 internal sendmail[7210]: o1NG61cd007210: to=root, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30425, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (o1NG61hT007211 Message accepted for delivery)
Feb 23 16:06:01 internal sendmail[7212]: o1NG61hT007211: to=<root@internal.fff.com>, ctladdr=<root@internal.fff.com> (0/0), delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30972, dsn=2.0.0, stat=Sent
internal.fff.com - это имя сервера.
ОБНОВИТЬ :
Так что на самом деле, если я поставлю в MAILTO=my@email.com
качестве первой строки моего crontab (используя crontab -e
), он работает.
Почему это не работает, установив MAILTO
в /etc/crontab
?
Спасибо
Ответы:
Итак, чтобы ответить на мой вопрос:
yum install mailx
yum install sendmail
MAILTO
строку в crontab используяcrontab -e
:MAILTO=my@email.com
а не в/etc/crontab
источник
/etc/crontab
который не определяет значения по умолчанию. unix.stackexchange.com/questions/3724/…Вы можете упростить это, установив nullmailer вместо sendmail (или exim4, или postfix и т. д.).
если он не работает, как у меня, не было, и вы отправляете в службу веб-почты, такую как gmail: убедитесь, что вы не установили никаких фильтров. У меня на самом деле был фильтр на что-нибудь из cron, чтобы обойти входящие. Вот почему я ничего не видел на своих рабочих местах.
источник
Мой
/var/log/maillog
показывал, чтоcrontab
(сMAILTO=root
) пытался отправить электронное письмо обоимroot
иroot@my_fqdn
(гдеmy_fqdn
, как server.something.com). Согласно журналу, отправкаroot
была успешной иroot@my_fqdn
неудачной, но я не нашел сообщения в/var/mail/root
. Вот соответствующий/var/log/maillog
фрагмент:Однако, согласно этому совету , почта теперь отображается в
/var/mail/root
. Проблема была/etc/hosts
необходима, чтобы добавить строку, чтобыmy_fqdn
решить как домен (обратите внимание на точку в конце):127.0.0.1 my_fqdn.
Примечание: способ, которым это работает сейчас, состоит в том, что сообщение все еще не может быть получено должным образом, но отскакивает назад способом, которым его
/var/mail/root
помещают (обратите вниманиеstat=Local configuration error
ниже во/var/log/maillog
фрагменте).источник