
Есть ли вероятность, что сервер Ubuntu 20.04 LTS сможет отправлять письма на определенные адреса электронной почты, если установлено обновление, требующее перезагрузки сервера?
Например, если файл /var/run/reboot-required.pkgs существует, он отправляет письмо администраторам, чтобы они могли выполнить перезагрузку?
Я просмотрел весь Google, но не могу найти простого руководства по этому вопросу.
решение1
Попробуйте /etc/apt/apt.conf.d/50unattended-upgrades
// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. A package that provides
// 'mailx' must be installed. E.g. "[email protected]"
Unattended-Upgrade::Mail "[email protected]";
// Set this value to "true" to get emails only on errors. Default
// is to always send a mail if Unattended-Upgrade::Mail is set
Unattended-Upgrade::MailOnlyOnError "false";
Это на самом деле самая простая часть. Далее нам нужно настроить легкую почтовую систему, чтобы получать электронную почту с сервера и передавать ее вам.
Вот один из способов сделать это:
sudo apt install msmtp msmtp-mta bsd-mailx
Файл конфигурации:/root/.msmtprc
account your_label_here
host smtp.example.com
port 465
from root@your_machine.your_domain
user [email protected] (your email)
password your_smtp_password
auth on
tls on
tls_starttls off
tls_certcheck off
logfile /root/.msmtp.log
account default : your_label_here
Тестовая команда:
echo "This is the email body" > /tmp/body.txt && sudo mailx -s "This is the subject" [email protected] < /tmp/body.txt; rm /tmp/body.txt
решение2
Спасибо, я следовал руководству и отредактировал cronjob для этого, так что как пользователь root я создал файл конфигурации /root/.msmtprc
account your_label_here
host smtp.example.com
port 465
from root@your_machine.your_domain
user [email protected] (your email)
password your_smtp_password
auth on
tls on
tls_starttls off
tls_certcheck off
logfile /root/.msmtp.log
account default : your_label_here
После этого я создал файл в /etc/cron.hourly/reboot-check
#!/usr/bin/env bash
if [ -f /var/run/reboot-required ]; then
echo "A reboot is required following updates to server <TestServer> the machine will auto reboot in 1h" > /tmp/body.txt && sudo mailx -s "Reboot Required" [email protected] < /tmp/body.txt; rm /tmp/body.txt
fi
А когда на компьютере установлено обновление, требующее перезагрузки, и создается файл /var/run/reboot-required, он отправляет мне электронное письмо с уведомлением о перезагрузке.