Привет, хабражители!
Сколько я работаю админом, столько придумываю скрипты и методы как упростить администрирование серверов. Так как мне больше всего нравится Linux, то мои мысли направлены на упрощение админства именно этой оси.
В один прекрасный день мне понадобилось автоматизировать некую рутинную работу на своем ноутбуке с Ubuntu. Через 15 минут скрипт был написан, протестирован и добавлен в крон по заданию. Очень удобно, все хорошо. Но чего-то не хватало. За время работы админом я приобрел профессиональную паранойю: всегда в работе надо продумывать самые плохие сценарии. А если мой сценарий не сработает?
Еще через 5 минут я захотел улучшить проделанную работу. И тут я вспомнил про скрипт для отправки сообщения по почте с терминала Linux, которым я активно пользуюсь на работе в системе мониторинга Zabbix.
Существует очень удобная легковесная консольная утилита для отправки емэйлов SendEmail.
1. Обновляем список пакетов и устанавливаем
2. Допустим, у нас есть некий скрипт backup.sh
3. Создаем в той же папке скрипт sendemail.sh
Сохраняем, делаем скрипт исполняемым
Созданный скрипт принимает 2 параметра: заголовок и тема. Это удобно, потому что можно использовать один скрипт для рассылки писем с разных программ.
Пробуем отправить письмо. Передаем скрипту параметры, первым будет тема, вторым тело письма.
Проверяем почту. На нее должно придти тестовое письмо.
4. Усовершенствуем скрипт бэкапа
Например, я хочу узнать размер созданного бэкапа и свободное место на томе.
Конечно письмо будет несколько некрасивым, слишком много лишнего. Но смысл главное ясен.
Теперь можно заставить ваши сервера докладывать о проделанных действиях, о своем состоянии и показателях. Считаю очень удобным, особенно когда подключена почта на смартфоне и в любое время админ получит информацию.
Кстати, скрипт отправки можно сделать более универсальным добавив еще один параметр для указания кому отправлять.
P.S. Мой первый топик, извиняюсь сразу.
Сколько я работаю админом, столько придумываю скрипты и методы как упростить администрирование серверов. Так как мне больше всего нравится Linux, то мои мысли направлены на упрощение админства именно этой оси.
В один прекрасный день мне понадобилось автоматизировать некую рутинную работу на своем ноутбуке с Ubuntu. Через 15 минут скрипт был написан, протестирован и добавлен в крон по заданию. Очень удобно, все хорошо. Но чего-то не хватало. За время работы админом я приобрел профессиональную паранойю: всегда в работе надо продумывать самые плохие сценарии. А если мой сценарий не сработает?
Еще через 5 минут я захотел улучшить проделанную работу. И тут я вспомнил про скрипт для отправки сообщения по почте с терминала Linux, которым я активно пользуюсь на работе в системе мониторинга Zabbix.
Существует очень удобная легковесная консольная утилита для отправки емэйлов SendEmail.
1. Обновляем список пакетов и устанавливаем
sudo apt-get update && sudo apt-get install sendemail
2. Допустим, у нас есть некий скрипт backup.sh
#!/bin/bash
# Создаем переменную с датой
DATE=`date +%d%m%y`
# Создаем папку с датой
mkdir /backup/$DATE
# Делаем бэкап папки /etc
7za a /backup/$DATE/backup.7z /etc/*
3. Создаем в той же папке скрипт sendemail.sh
#!/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
Сохраняем, делаем скрипт исполняемым
chmod +x sendemail.sh
Созданный скрипт принимает 2 параметра: заголовок и тема. Это удобно, потому что можно использовать один скрипт для рассылки писем с разных программ.
Пробуем отправить письмо. Передаем скрипту параметры, первым будет тема, вторым тело письма.
./sendemail.sh Тест Проверка!
Проверяем почту. На нее должно придти тестовое письмо.
4. Усовершенствуем скрипт бэкапа
Например, я хочу узнать размер созданного бэкапа и свободное место на томе.
#!/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"
Конечно письмо будет несколько некрасивым, слишком много лишнего. Но смысл главное ясен.
Теперь можно заставить ваши сервера докладывать о проделанных действиях, о своем состоянии и показателях. Считаю очень удобным, особенно когда подключена почта на смартфоне и в любое время админ получит информацию.
Кстати, скрипт отправки можно сделать более универсальным добавив еще один параметр для указания кому отправлять.
P.S. Мой первый топик, извиняюсь сразу.