Я ищу команду-оболочку (в идеале на Python), которая выполняет заданную команду и обрабатывает ее вывод (STDERR / STDOUT) аналогично cron:
Мне не нужна возможность подключаться к внешнему серверу, системной почтовой команды будет достаточно (я использую Linux).
Я обнаружил cronwrap , но его электронные письма слишком подробны. Существует также croncoat , но для него требуется внешний SMTP-сервер (что не всегда вариант для меня).
В идеале была бы оболочка, такая как croncoat, но с поддержкой mail
и с настраиваемыми уведомлениями по электронной почте, поэтому мне не нужно настраивать исходный код.
(Я предполагаю, что это повторяющийся вопрос, но, вероятно, я просто использовал неправильные условия поиска.)
Вероятно, это ошибка
Можете ли вы просто поместить сценарий оболочки в /etc/cron.d/
? Ниже приведен образец ( man 5 crontab
для получения дополнительной информации). Задание cron отправит электронное письмо, содержащее информацию, содержащуюся в операторе echo
.
Если вместо этого вы хотите создать собственное электронное письмо (с темой), это лучше всего сделать в test_condition.sh
и убедитесь, что демон cron
не видит вывод .
# run shell script every 15 minutes to test something
*/15 * * * * root /root/test_condition.sh || echo "Script exited with status 1"
Скрипт /root/test_condition.sh
(обязательно защитите его с помощью chmod 0750
или аналогичного)
#!/bin/sh
# do things... test cron by exiting with 1. Comment out the next line to test mail
exit 1
# otherwise exit with a 0 and handle the email from here.
echo "I did some things. Things happened. Big things." | mail -s "Something happened" root@localhost
exit 0