Разрешить серверу Ubuntu отправлять письмо, когда требуется перезагрузка системы

Разрешить серверу Ubuntu отправлять письмо, когда требуется перезагрузка системы

Есть ли вероятность, что сервер 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, он отправляет мне электронное письмо с уведомлением о перезагрузке.

Связанный контент