Показать сообщение отдельно

Bash: учим свои скрипты отправлять смс
  #1  
Старый 04.06.2010, 16:01
Joker-jar
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме:
4172659

Репутация: 646


Отправить сообщение для Joker-jar с помощью ICQ
По умолчанию Bash: учим свои скрипты отправлять смс

Хочу поделиться реализацией отправки смс из-под bash-скриптов. Может, кому-то будет полезно. Я, например, таким образом сделал смс-уведомления при отключении питания.

Сообщения я отправляю через email2sms шлюз провайдера. Для моего прова ссылка для настройки следующая:

http://eao.megafon.ru/services/wap_internet/mail/email2sms/

Создал ящик, при отправки на него письма на телефон прилетает смска с текстом письма. Похожая услуга должна быть и у других провайдеров.

Поглядел на несколько консольных программок для отправки e-mail, окончательный выбор остановился на ssmtp, ибо проста до ужаса. Есть в репах арча и убунты, на счет остальных дистрибутивов не знаю. Для отправки почты нужно завести какую-нибудь учетку на почтовом сервере, затем отредактировать конфиг [i]/etc/ssmtp/ssmtp.conf[i]:
Код:
root=e-mail
mailhub=smtp-сервер
rewriteDomain=домен e-mail'а

FromLineOverride=YES

authuser=имя пользователя
authpass=пароль
Отправка смс осуществляется следующим образом:
Код:
(
  echo "To: <e-mail, забинденный на ваш телефон>"
  echo "From: <e-mail-отправитель, прописанный в конфиге ssmtp>"
  echo "Subject: тема письма"
  echo " "
  echo "текст письма"
) | ssmtp e-mail, забинденный на ваш телефон
Непосредственно для отслеживания перебоев в питании я использую демон apcupsd, опрашивающий мой APC Smart UPS 1000. В папке /etc/apcupsd лежат скрипты offbattery и onbattery, выполняющиеся при наступлении соответствующих событий (можно создать дополнительные скрипты на события, в документации описано). Например, скрипт onbattery выполняется при отключении питания, когда происходит переключение на питание от батареи. В скрипте по дефолту прописан код, отсылающий системное сообщение о событии. перед строкой "exit 0" я добавил блок, отправляющий смс-уведомление:
Код:
(
  echo "To: <*****@sms.megafondv.ru>"
  echo "From: <*****@joker-jar.ru>"
  echo "Subject: UPS message `date \"+%d.%m.%Y %H:%M:%S\"`"
  echo " "
  echo "Power failure on UPS. Running on batteries"
) | ssmtp *****@sms.megafondv.ru
Аналогичное проделал в скрипте offbattery