Назад | Перейти на главную страницу

crontab отправляет мне электронное письмо, что / bin / bash / mail или / bin / bash mailx не найдены

Обновить: строка cron теперь имеет правильную структуру.

у меня есть mailto:user1@domain.com,user2@domain.com опция настроена в моем crontab

У меня сейчас запланирована эта crontask:

* / 5 * * * * root / bin / bash / scripts / db-bkup-test &> / tmp / myDbBack.log; mailx -s «Ночное тестовое резервное копирование базы данных успешно выполняется» user @ domain.com, user1 @ domain.com

* / 5 * * * * root / bin / bash / scripts / db-bkup-test &> / tmp / myDbBack.log; mail -s «Ночное тестовое резервное копирование базы данных выполнено успешно» user @ domain.com, user1 @ domain.com

Я получаю сообщение об ошибке, что / bin / bash mail не может быть найден в электронном письме. Я нахожу это забавным. Итак, как я могу исправить эту ошибку?

Вот как вы редактируете свой cron-файл:

crontab -e

Вот пример базового задания cron, которое сбрасывает базу данных каждые 6 часов и отправляет электронное письмо, которое будет содержать все, что команда выводит на стандартный вывод для Тома Хэнкса и Тома Круза:

MAILTO="tom@hanks.com,tom@cruise.com"
0 */6 * * * mysqldump -u tom_hanks -pHANKS_TOM --host=10.0.0.1 mycompany > /home/tom_hanks/db.sql

Теперь для почта для работы вам понадобится агент MTA. Установите postfix, чтобы получить команду mail через терминал в ubuntu / debian:

sudo apt-get update && sudo apt-get install -y postfix mailutils

или

sudo dnf update && sudo dnf install postfix mailx -y 

замените dnf на yum для старых версий Redhat или Fedora.

Для mailx вы можете установить bsd-mailx в Ubuntu / Debian:

sudo apt-get update && sudo apt-get install bsd-mailx 

Если у вас уже установлен postfix, вы можете устранить неполадки с помощью этой команды в терминале на ubuntu / debian:

sudo dpkg-reconfigure postfix

Откройте порт 25 с помощью iptables:

iptables -I INPUT -p tcp -m tcp --dport 25 -j ACCEPT

Поскольку вы хотите, чтобы root запускал задание cron, используйте

sudo crontab -e

Затем добавьте свой cronjob следующим образом:

*/5 * * * * sh /scripts/db-bkup-test.sh &> /tmp/myDbBack.log &&  mail -s "Nightly Test Database Back-up Is Running Successfully" user@domain.com,user1@domain.com < /dev/null

команде mail потребуется тело письма, которое мы предоставляем null (ничего)

Так что не очень знаком с серверной частью Linux, разобрался. Я установил mailx.

yum установить mailx

Используя этот источник.

Я протестировал сервис с помощью cmd:

$ mailx -s 'Test' user@domain.com > /dev/null

Обновлен cron, чтобы отобразить пустое тело, как указано выше > /dev/null