Обновить: строка 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