Учим Ubuntu докладывать о своем состоянии по почте за 5 минут
Сколько я работаю админом, столько придумываю скрипты и методы как упростить администрирование серверов. Так как мне больше всего нравится Linux, то мои мысли направлены на упрощение админства именно этой оси.
В один прекрасный день мне понадобилось автоматизировать некую рутинную работу на своем ноутбуке с Ubuntu. Через 15 минут скрипт был написан, протестирован и добавлен в крон по заданию. Очень удобно, все хорошо. Но чего-то не хватало. За время работы админом я приобрел профессиональную паранойю: всегда в работе надо продумывать самые плохие сценарии. А если мой сценарий не сработает?
Еще через 5 минут я захотел улучшить проделанную работу. И тут я вспомнил про скрипт для отправки сообщения по почте с терминала Linux, которым я активно пользуюсь на работе в системе мониторинга Zabbix.
Существует очень удобная легковесная консольная утилита для отправки емэйлов SendEmail.
1. Обновляем список пакетов и устанавливаем
2. Допустим, у нас есть некий скрипт backup.sh
3. Создаем в той же папке скрипт sendemail.sh
Сохраняем, делаем скрипт исполняемым
Созданный скрипт принимает 2 параметра: заголовок и тема. Это удобно, потому что можно использовать один скрипт для рассылки писем с разных программ.
Пробуем отправить письмо. Передаем скрипту параметры, первым будет тема, вторым тело письма.
Проверяем почту. На нее должно придти тестовое письмо.
4. Усовершенствуем скрипт бэкапа
Например, я хочу узнать размер созданного бэкапа и свободное место на томе.
Конечно письмо будет несколько некрасивым, слишком много лишнего. Но смысл главное ясен.
Теперь можно заставить ваши сервера докладывать о проделанных действиях, о своем состоянии и показателях. Считаю очень удобным, особенно когда подключена почта на смартфоне и в любое время админ получит информацию.
Кстати, скрипт отправки можно сделать более универсальным добавив еще один параметр для указания кому отправлять.
В один прекрасный день мне понадобилось автоматизировать некую рутинную работу на своем ноутбуке с Ubuntu. Через 15 минут скрипт был написан, протестирован и добавлен в крон по заданию. Очень удобно, все хорошо. Но чего-то не хватало. За время работы админом я приобрел профессиональную паранойю: всегда в работе надо продумывать самые плохие сценарии. А если мой сценарий не сработает?
Еще через 5 минут я захотел улучшить проделанную работу. И тут я вспомнил про скрипт для отправки сообщения по почте с терминала Linux, которым я активно пользуюсь на работе в системе мониторинга Zabbix.
Существует очень удобная легковесная консольная утилита для отправки емэйлов SendEmail.
1. Обновляем список пакетов и устанавливаем
sudo apt-get update && sudo apt-get install sendemail
2. Допустим, у нас есть некий скрипт backup.sh
<code class="bash">#!/bin/bash # Создаем переменную с датой DATE=`date +%d%m%y` # Создаем папку с датой mkdir /backup/$DATE # Делаем бэкап папки /etc 7za a /backup/$DATE/backup.7z /etc/* </code>
3. Создаем в той же папке скрипт sendemail.sh
<code class="bash">#!/bin/bash # Будет отображаться "От кого" FROM=my@server.ru # Кому MAILTO=email@yandex.ru # Тема письма NAME=$1 # Тело письма BODY=$2 # В моем примере я отправляю письма через существующий почтовый ящик на gmail.com # Скрипт легко адаптируется для любых почтовых серверов SMTPSERVER=smtp.gmail.com # Логин и пароль от учетной записи gmail.com SMTPLOGIN=name@gmail.com SMTPPASS=superpassword # Отправляем письмо /usr/bin/sendEmail -f $FROM -t $MAILTO -o message-charset=utf-8 -u $NAME -m $BODY -s $SMTPSERVER -o tls=yes -xu $SMTPLOGIN -xp $SMTPPASS </code>
Сохраняем, делаем скрипт исполняемым
chmod +x sendemail.sh
Созданный скрипт принимает 2 параметра: заголовок и тема. Это удобно, потому что можно использовать один скрипт для рассылки писем с разных программ.
Пробуем отправить письмо. Передаем скрипту параметры, первым будет тема, вторым тело письма.
./sendemail.sh Тест Проверка!
Проверяем почту. На нее должно придти тестовое письмо.
4. Усовершенствуем скрипт бэкапа
Например, я хочу узнать размер созданного бэкапа и свободное место на томе.
<code class="bash">#!/bin/bash # Создаем переменную с датой DATE=`date +%d%m%y` # Создаем папку с датой mkdir /backup/$DATE # Делаем бэкап папки /etc 7za a /backup/$DATE/backup.7z /etc/* # Создадим переменные с необходимой информацией. # Допустим конечная папка примонтирована к отдельному диску # Узнаем размер занимаемого места созданным бэкапом DU=`du -sh /backup/$DATE` # И информацию о размере диска DF=`df -hT /backup` # Отправляем письмо с информацией ./sendemail.sh "Бэкап выполнен!" "$DU $DF" </code>
Конечно письмо будет несколько некрасивым, слишком много лишнего. Но смысл главное ясен.
Теперь можно заставить ваши сервера докладывать о проделанных действиях, о своем состоянии и показателях. Считаю очень удобным, особенно когда подключена почта на смартфоне и в любое время админ получит информацию.
Кстати, скрипт отправки можно сделать более универсальным добавив еще один параметр для указания кому отправлять.
0 комментариев