Собственно, после "небольшого" перерыва (с временем свободным всё не важно) пишу очередную памятку "для себя". Если кому и пригодится - отлично.
Короче, встала необходимость регулярно просматривать логи бэкапа на удаленном сервере, копированием там осуществляется регулярно через Rsync. Дабы держать руку на пульсе и периодически поглядывать логи сделал небольшую примочку на сервере - возможность отправки логов бэкапа прямо ко мне на электронную почту. В этом посте рассматривается реализация этого процесса через настройку пакета ssmtp и mpack.
До конца я это еще всё не тестил, но вроде пока все приходит нормально.
Итак, что надо.
1). Регистрируем себе почтовый ящик с которого (через который) будут приходить уведомления. Я выбрал яндекс и все настройки ниже справедливы для него.
2). Ставим замечательный пакет ssmtp, который и занимается отправкой сообщения с локального моего сервера на яндексовский шлюз.
3). Ставим утилиту mpack.
Всё находится в стандартных убунтовских репозиториях.
Дальше идём в /etc/ssmtp
и видим там два файла, их надо немножко откорректировать
Обратите внимание, мой почтовый ящик от которого будет приходить письмо называется backup@ваш_домен_здесь.ру (у меня доменная почта, поэтому домен свой, если вы заводите обычный ящик - естественно домен будет yandex).
Вот пример настройки ssmtp.conf
root=backup
mailhub=smtp.yandex.ru:465
UseTLS=YES
AuthUser=backup@ваш_домен_здесь.ru
AuthPass=ваш_пароль
FromLineOverride=Yes
rewriteDomain=ваш_домен_здесь.ru
hostname=backup
Содержимое второго файла revaliases:
user:backup@ваш_домен_здесь.ru:smtp.yandex.ru:465
Вот тут где я выделил user - надо подставить имя пользователя на сервере от которого будет запуск команды. Внимание, на точность сего конфига не претендую, но методом перебора я сделал конфиг именно таким, так как иначе яндекс ни в какую не хотел от меня получать почту.
Проверяем, работает ли почта, идем в терминал и задаём простую команду на отправку письма на ящик ящик@какой_нибудь_домен.ru
echo "" | ssmtp -v -s Hello ящик@какой_нибудь_домен.ru
Смотрим логи, если всё окей письмо отправится и придет в тот ящик который вы указали.
Если что-то не так смотрите лог в терминале там все будет написано.
Как же отправить теперь лог сервера?
Всё просто, одной командой, в примере ниже, лог лежит по условному пути в файле log.txt /home/mylog/log.txt
Команда такая:
mpack -s "Лог бэкапа" /home/mylog/log.txt ящик@какой_нибудь_домен.ru
Короче, встала необходимость регулярно просматривать логи бэкапа на удаленном сервере, копированием там осуществляется регулярно через Rsync. Дабы держать руку на пульсе и периодически поглядывать логи сделал небольшую примочку на сервере - возможность отправки логов бэкапа прямо ко мне на электронную почту. В этом посте рассматривается реализация этого процесса через настройку пакета ssmtp и mpack.
До конца я это еще всё не тестил, но вроде пока все приходит нормально.
Итак, что надо.
1). Регистрируем себе почтовый ящик с которого (через который) будут приходить уведомления. Я выбрал яндекс и все настройки ниже справедливы для него.
2). Ставим замечательный пакет ssmtp, который и занимается отправкой сообщения с локального моего сервера на яндексовский шлюз.
3). Ставим утилиту mpack.
Всё находится в стандартных убунтовских репозиториях.
Дальше идём в /etc/ssmtp
и видим там два файла, их надо немножко откорректировать
Обратите внимание, мой почтовый ящик от которого будет приходить письмо называется backup@ваш_домен_здесь.ру (у меня доменная почта, поэтому домен свой, если вы заводите обычный ящик - естественно домен будет yandex).
Вот пример настройки ssmtp.conf
root=backup
mailhub=smtp.yandex.ru:465
UseTLS=YES
AuthUser=backup@ваш_домен_здесь.ru
AuthPass=ваш_пароль
FromLineOverride=Yes
rewriteDomain=ваш_домен_здесь.ru
hostname=backup
Содержимое второго файла revaliases:
user:backup@ваш_домен_здесь.ru:smtp.yandex.ru:465
Вот тут где я выделил user - надо подставить имя пользователя на сервере от которого будет запуск команды. Внимание, на точность сего конфига не претендую, но методом перебора я сделал конфиг именно таким, так как иначе яндекс ни в какую не хотел от меня получать почту.
Проверяем, работает ли почта, идем в терминал и задаём простую команду на отправку письма на ящик ящик@какой_нибудь_домен.ru
echo "" | ssmtp -v -s Hello ящик@какой_нибудь_домен.ru
Смотрим логи, если всё окей письмо отправится и придет в тот ящик который вы указали.
Если что-то не так смотрите лог в терминале там все будет написано.
Как же отправить теперь лог сервера?
Всё просто, одной командой, в примере ниже, лог лежит по условному пути в файле log.txt /home/mylog/log.txt
Команда такая:
mpack -s "Лог бэкапа" /home/mylog/log.txt ящик@какой_нибудь_домен.ru
Лог придёт прямо в тексте письма.
Работает это так у меня сейчас.
Срабатывает по крону скрипт который сначала делает бэкап через Rsync, потом после него отправляет готовый лог. Всего две команды в скрипте.
Про локальный и удалённый бэкап через Rsync напишу потом).
2 комментария:
Спасибо, сработало, именно то, что надо!
сообщения приходят но пустые
Отправить комментарий