Задался вопросом а как отслеживать события на подконтрольных серверах, вроде отвалившегося раздела из RAID-массива. По умолчанию система отправляет системные сообщения на почту root, т.е. в файл /var/mail/root. Нам же нужно, чтобы почту уходила не внешний ящик, информацию на котором мы сразу увидим. Решить вопрос можно двумя (как минимум) путями:

postfix

Задача разбивается на 2 части:

  1. Научить систему отправлять почту. И если вам не нужно настраивать полноценный почтовый сервер с доступом в мир, то проще всего завести relay, например через Яндекс. Как это сделать я уже писал ранее http://help.ubuntu.ru/wiki/postfix_relay_yandex
  2. Перенаправить почту для root в наш внешний почтовый ящик.

Первое уже решено ранее, нужно разобраться со 2-й задачкой. Поискал инфу, попробовал, получил резальтат, решил в вики оформить, благо писать не много.

sudo su
echo "root: my@email.ru" >> /etc/aliases
newaliases

Вот и все, почта для root будет падать на наш внешний почтовый ящик. Проверил на ВМ, имитацией отказа одного из разделов в RAID1.

ssmtp

Также, вместо postfix, можно воспользоваться утилитой ssmtp.

Установка

sudo apt-get install ssmtp

Настройка

Редактируем файл /etc/ssmtp/ssmtp.conf

root=
mailhub=smtp.yandex.ru:465 # SMTP-сервер яндекса
UseTLS=Yes
AuthUser=почта@с_которой_отсылаем # Почтовый ящик
AuthPass=pass # Пароль
hostname=localhost
FromLineOverride=YES

Настраиваем отправителей писем:

Редактируем файл /etc/ssmtp/revaliases

root:почта@с_которой_отсылаем:smtp.yandex.ru:465
user:почта@с_которой_отсылаем:smtp.yandex.ru:465

Измените user на пользователя, который заведен в вашей системе.

Проверим настройки, отправив тестовое письмо

echo test | sendmail -v почта@куда_отсылаем

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

sudo rm /usr/sbin/sendmail
sudo nano /usr/sbin/sendmail

Пишем следующее:

#!/bin/sh
sed -r \
-e 's/^From: .*$/From: Server <почта@с_которой_отсылаем>/' \
-e 's/^To: .*$/To: почта@куда_отсылаем/' \
| /usr/sbin/ssmtp 'почта@куда_отсылаем' 

Даём права на исполнение

sudo chmod +x /usr/sbin/sendmail 
Обратите внимание, теперь почта будет отправляться только на адрес, который указали в /usr/sbin/sendmail, независимо от того, какие электронные адреса указаны в консоли и скриптах.