У меня есть сценарий, который выводит данные в файл и делает несколько awk
операции с этим выходным файлом и смешивание вывода двух файлов с помощью paste -d, а затем отправка электронной почты вновь созданного файла по электронной почте. Если я запускаю тот же сценарий из командной строки, он также выдает вывод и отправляет электронную почту, но если я использую ту же команду для задания cron. Это не отправка электронной почты и /var/log/cron
дает это сообщение. "CROND[6235]: (root) MAIL (mailed 125 bytes of output but got status 0x0043#012)". No info for message code (0x0043#012).
Пожалуйста, предложите.
Из раздела комментариев к вопросу я вижу, что SELinux не позволяет вашему заданию cron отправлять электронные письма. Отказ не происходит при ручном запуске из командной строки, поскольку SELinux по умолчанию не ограничивает интерактивные сеансы. С другой стороны, задания, запускаемые Cron, ограничены.
Я не уверен, почему в вашей системе CentOS 7 был сгенерирован отказ SELinux. Я пытался бежать mail
из Cron в полностью обновленной системе CentOS 7, и сообщение было успешно отправлено. Я предлагаю вам убедиться, что на вашем сервере установлены последние пакеты (yum upgrade
) и выполнить перемаркировку SELinux во всей файловой системе (touch /.autorelabel && reboot
).
следить стандартные шаги по устранению неполадок SELinux в случае, если ваша работа cron продолжает терпеть неудачу после переименования. Или вместо этого вы можете настроить разрешающий режим навсегда:
cron
служба:# semanage permissive -a crond_t
# sed -ri.bak 's/^(SELINUX=).*/\1permissive/' /etc/selinux/config && reboot