Как я устанавливаю Крон для отправки электронных писем?

У меня есть следующая команда задания крона, работающая один раз в день на моем устройстве NAS:

find /nfs/rpiggott/complete -mtime +45 -exec rm {} \;

Я задаюсь вопросом, существует ли способ передать по каналу список, который приведет к крону, отправляющему электронное письмо мне показывающий, какой файл это удаляет и / или любые столкнутые ошибки.

5
задан 3 April 2018 в 14:05

2 ответа

Поскольку это имеет целью Вас, система должна смочь послать электронные письма. Таким образом, Вы могли установить и настроить 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 послать электронные письма. Посмотрите нижнюю часть ссылок для деталей гумуса.


Ссылки и дополнительные материалы для чтения:

6
ответ дан 23 November 2019 в 08:58

Я использовал довольно простой метод добраться cron послать электронные письма: Скопируйте конфигурацию Linux, сценарии и документы Gmail.

Самый простой способ автоматизировать электронное письмо отправки

От Отправляют предупреждения по электронной почте с помощью ssmtp, мы находим самый простой способ послать электронное письмо, автоматизированное от терминала или сценария. Действия по установке являются прямыми:

sudo apt install ssmtp
sudo nano /etc/ssmtp/ssmtp.conf
# Change "MyEmailAddress" and "MyPassword" to your own.

Существует один шаг, не упомянутый; Google отправит Вас, электронное письмо, подтверждающее Вас, хочет позволить "менее безопасному" приложению отправлять почту с Вашей учетной записью:

gmail turns on less secure apps for email

Существует раздражение из-за получения слишком большого количества почты. Например, каждый раз Вы вводите Ваш с опечаткой sudo пароль Вы получите электронное письмо: Прекратите посылать мне по электронной почте плохо sudo попытки пароля

2
ответ дан 23 November 2019 в 08:58

Другие вопросы по тегам:

Похожие вопросы: