Дело в том, что однажды захотелось знать, а отработало ли задание о перезагрузке базовых станций, думаю что приход сообщения на электронную почту от специально созданного для этой цели почтового ящика, чтобы уже наверняка понимать — от куда это письмо и что с ним связано.

В моем случае, все задания о ежедневной перезагруке базовых станций, как Grandstream так и D-Link настроены на сервисе который предоставляет мне полную информацию по рабочим станциям, а раз по большей части данный сервер с этим сервисом GLPI простаивает, то нагрузить его заданиями особого затруднения не составляет.

root@srv-glpi:~# crontab -e

59 23 * * * /etc/voip/dvg2024s_22 > /dev/null

59 23 * * * /etc/voip/dvg2024s_23 > /dev/null

59 23 * * * /etc/voip/dvg5058sg_20 > /dev/null

59 23 * * * /etc/voip/dvg5058sg_21 > /dev/null

59 23 * * * /etc/voip/gg715_108 > /dev/null

и т.д.

Задача: дополнить скрипт перезагрузки базовых станции Grandstream отправкой уведомления на мой почтовый ящик, что станция отправлена в перезагрузку.

Запускаю скрипт о перезагрузке, вижу лог — и хотелось бы видеть и на почте точно такое же ли хотя бы простое уведомление, что станция отправлена в перезагрузку.

aollo@srv-glpi:~$ sudo /etc/voip/gg715_119

spawn telnet 10.7.8.119

Trying 10.7.8.119…

Connected to 10.7.8.119.

Escape character is ‘^]’.

Grandstream DP715 Command Shell Copyright 2006-2014

Password:

GS> reboot

Base Station Grandstream GP715 – 10.7.8.119 Rebooting

Специально для данной задачи создал почтовый ящик для сервере srv-glpi:

glpi-report@nemdom.ru

Pass:<Специальный_пароль>

Далее нужно на систему поставить MTA агент — к примеру такой как ssmtp — с ним у меня только положительные моменты использования, да и прост он в настройке:

aollo@srv-glpi:~$ sudo apt-get install ssmtp mailutils -y

aollo@srv-glpi:~$ sudo nano /etc/ssmtp/ssmtp.conf

root=glpi-report@nemdom.ru

mailhub=<мой_почтовый_сервер:587>

rewriteDomain=nemdom.ru

UseSTARTTLS=Yes

AuthUser=glpi-report@nemdom.ru

AuthPass=<Специальный_пароль>

FromLineOvveride=yes

Настраиваю, кто может из локальных пользователей системы задействовать MTA агент для отправки почты:

aollo@srv-glpi:~$ sudo nano /etc/ssmtp/revaliases

root:glpi-report@nemdom.ru:<мой_почтовый_сервер:587>

aollo:glpi-report@nemdom.ru:<мой_почтовый_сервер:587>

Пробую отправить тестовое сообщение:

aollo@srv-glpi:~$ echo test | ssmtp -v -s "Hello" alexander.ollo@nemdom.ru

[<-] 220 mail.newmail.ru ESMTP Postfix

[->] EHLO srv-glpi

[<-] 250 DSN

[->] STARTTLS

[<-] 220 2.0.0 Ready to start TLS

[->] EHLO srv-glpi

[<-] 250 DSN

[->] AUTH LOGIN

[<-] 334 VXNlcm5hbWU6

[->] Z2xwaS1yZXBvcnQ=

[<-] 334 UGFzc3dvcmQ6

[<-] 235 2.7.0 Authentication successful

[->] MAIL FROM:<glpi-report@nemdom.ru>

[<-] 250 2.1.0 Ok

[->] RCPT TO:<Hello@nemdom.ru>

[<-] 250 2.1.5 Ok

[->] RCPT TO:<alexander.ollo@nemdom.ru>

[<-] 250 2.1.5 Ok

[->] DATA

[<-] 354 End data with <CR><LF>.<CR><LF>

[->] Received: by srv-glpi (sSMTP sendmail emulation); Sat, 07 Nov 2015 12:19:14 +0300

[->] From: “aollo” <glpi-report@nemdom.ru>

[->] Date: Sat, 07 Nov 2015 12:19:14 +0300

[->] test

[->]

[->] .

[<-] 250 2.0.0 Ok: queued as BAE1618AF831

[->] QUIT

[<-] 221 2.0.0 Bye

Если такой отчет присутствует, значит конфигурационный файл ssmtp.conf настроен правильно.

Далее проверяю, а что у меня в почтовом ящике красуется?

Проверяю что агент MTA корректно настроен

Теперь мне надо добавить возможность добавления в отправку письма «Тему» сообщения и шаблон на конкретный скрипт тела сообщения:

aollo@srv-glpi:~$ whereis ssmtp

ssmtp: /usr/sbin/ssmtp /etc/ssmtp /usr/share/man/man8/ssmtp.8.gz

aollo@srv-glpi:~$ ssmtp -t <<EOF

To: alexander.ollo@nemdom.ru

Date: $(date -R)

Subject: Just this test

This is a test from ssmtp on Ubuntu 12.04.5 Server

EOF

Что теперь в почтовом клиенте Thunderbird отображается?:

Отправка тестового письма через консоль

Отлично, то что надо.

А вот теперь как это все оформить одной строкой, cоздаю файл с атрибутами составляемого письма:

aollo@srv-glpi:~$ nano msg.txt

To: alexander.ollo@nemdom.ru

Subject: Just this test

This is a test from ssmtp on Ubuntu 12.04.5 Server

После запускаю утилиту с приложением файла составленного заранее письма.

aollo@srv-glpi:~$ ssmtp alexander.ollo@nemdom.ru < msg.txt

В итоге:

Отправка письма через подготовленный файл

Чтобы вывести текущую дату полностью, пригодится для добавления в тему сообщения:

aollo@srv-glpi:~$ echo "$(date --date "yesterday")"

Fri Nov 6 12:32:15 MSK 2015

Теперь когда все протестировано, дополняю файл скрипта отправкой отчета на почту о результатах выполнения:

aollo@srv-glpi:~$ sudo nano /etc/voip/gg715_119

#!/bin/bash

/usr/bin/expect - <<EOD

set timeout 10

spawn telnet 10.7.8.119

sleep 2

expect "Password:*"

sleep 2

send "admin\r"

expect "GS>*"

send "reboot\r"

sleep 1

send "exit\r"

expect eof

EOD

echo "$(date --date "yesterday") Base Station Grandstream GP715 - 10.7.8.119 Rebooting"

echo "To: alexander.ollo@nemdom.ru" > /etc/voip/gg715_119.msg

echo "Subject: $(date --date "yesterday") Base Station Grandstream GP715 - 10.7.8.119 Rebooting" >> /etc/voip/gg715_119.msg

echo "Base Station Grandstream GP715 - 10.7.8.119 Rebooting po cron" >> /etc/voip/gg715_119.msg

/usr/sbin/ssmtp alexander.ollo@nemdom.ru < /etc/voip/gg715_119.msg

rm /etc/voip/gg715_119.msg

Запускаю:

aollo@srv-glpi:~$ sudo /etc/voip/gg715_119

spawn telnet 10.7.8.119

Trying 10.7.8.119…

Connected to 10.7.8.119.

Escape character is ‘^]’.

Grandstream DP715 Command Shell Copyright 2006-2014

Password:

GS> reboot

Fri Nov 6 14:53:03 MSK 2015 Base Station Grandstream GP715 – 10.7.8.119 Rebooting

Отлично, а на почту приходит вот такое вот письмо:

Полученное письмо о перезагрузке базовой станции

Вот то что мне и нужно было. Заметка работоспособна. И пока для текущего использования мне подходит. На этом всё, с уважением — автор блога, ekzorchik.

От ekzorchik

Всем хорошего дня, меня зовут Александр. Я под ником - ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог - это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору. Также прошу на https://win.ekzorchik.ru https://lin.ekzorchik.ru https://net.ekzorchik.ru https://voip.ekzorchik.ru https;//home.ekzorchik.ru