У меня есть следующая команда задания крона, работающая один раз в день на моем устройстве NAS:
find /nfs/rpiggott/complete -mtime +45 -exec rm {} \;
Я задаюсь вопросом, существует ли способ передать по каналу список, который приведет к крону, отправляющему электронное письмо мне показывающий, какой файл это удаляет и / или любые столкнутые ошибки.
Поскольку это имеет целью Вас, система должна смочь послать электронные письма. Таким образом, Вы могли установить и настроить postfix
:
sudo apt install postfix
Поскольку Общий тип почтовой конфигурации выбирает Internet Site, если Вы хотите сделать, более подробная конфигурация использует команду:
sudo dpkg-reconfigure postfix
На этом этапе Крон начнет посылать электронные письма. Все, что обычно будет производиться к STDOUT (если Вы, выполняют команду в командной строке), включая все сообщения об ошибках, будет отправлено в локальный почтовый ящик пользователя, который выполняет Cronjob.
Местоположение по умолчанию почтовых ящиков локального пользователя /var/mail/
. Можно установить почтовый клиент командной строки mutt
считать электронный ящик Вашего пользователя через командную строку удобным способом:
sudo apt install mutt
mutt
процесс установки включит установку и конфигурацию postfix
если это не сделано прежде.Можно изменить целевой почтовый ящик по умолчанию путем изменения значения envvar MAILTO
в crontab
, перед определением Cronjob.
Пожалуйста, примите во внимание: если Вы не включили сертификат SSL/TLS в Вас, отправляют почтовую конфигурацию, большинство общедоступных почтовых серверов проигнорирует Ваши электронные письма в некотором роде. Например, mail.google.com
поместит их в спам. Если это - экземпляр сервера, и у Вас уже есть сертификат SSL/TLS для Вашего первичного домена, следуют этому хорошему руководству для присоединения его для Добавления постфикса.
После того как Ваша система может послать электронные письма, для которых необходимо сделать Cronjob более подробным (например, добавить -v
к rm
команда), и должен установить собственное значение MAILTO
. Так Ваш crontab
должен посмотреть как это:
MAILTO="example.email@gmail.com"
* * * * * find /nfs/rpiggott/complete -mtime +45 -exec rm -v {} \;
Другой подход должен создать сценарий (который будет выполняться через crontab
) это включает Вашу команду и использование mail
, mutt
, ssmtp
или sendmail
послать электронные письма. Посмотрите нижнюю часть ссылок для деталей гумуса.
Ссылки и дополнительные материалы для чтения:
Я использовал довольно простой метод добраться cron
послать электронные письма: Скопируйте конфигурацию Linux, сценарии и документы Gmail.
От Отправляют предупреждения по электронной почте с помощью ssmtp, мы находим самый простой способ послать электронное письмо, автоматизированное от терминала или сценария. Действия по установке являются прямыми:
sudo apt install ssmtp
sudo nano /etc/ssmtp/ssmtp.conf
# Change "MyEmailAddress" and "MyPassword" to your own.
Существует один шаг, не упомянутый; Google отправит Вас, электронное письмо, подтверждающее Вас, хочет позволить "менее безопасному" приложению отправлять почту с Вашей учетной записью:
Существует раздражение из-за получения слишком большого количества почты. Например, каждый раз Вы вводите Ваш с опечаткой sudo
пароль Вы получите электронное письмо: Прекратите посылать мне по электронной почте плохо sudo попытки пароля