Отправка SMS из под Shell

в 13:44, , рубрики: linux, python, shell script, Песочница, метки: , , ,

Как-то раз пришлось мне собирать gentoo на очень древнем железе, и меня постоянно мучил вопрос: «Как же сделать так, что-бы знать когда закончится компиляция всех пакетов и я смогу приступить к дальнейшей работе с ПК?» В поисках истины нашел наиболее подходящее для меня решение это отправка SMS уведомлений.

Тут есть 2 решения:
1. Отправка писем на выделенный вашим ОПСОСом ящик (у мегафона эта услуга называлась «Электронная почта GSM»)
2. Отправка писем с помощью скрипта использующего функции mailagent'a.

С первым способом все просто:
Вся суть этого метода заключается в том что-бы подключить данную услугу, получить адрес предоставленной почты (как правило вида <ваш номер>@<домен ОПСОСа в вашем регионе>), и настроить отправку email на данный адрес. Все сообщения отправленные на него будут приходить в виде смс на ваш телефон. Но к сожалению не все операторы предоставляют такую услугу. Первым делом вам необходимо уточнить предоставляет ли ваш ОПСОС ее или нет.

Поэтому мы переходим ко второму более универсальному методу:
Скрипт был найден давным давно в просторах интернета, имя автора я не помню, а все ссылки ведущие на страницу уже битые. Написан на python и работает через сервис mail.ru.

Следовательно для работы с ним нам понадобятся:
1. Сам скрипт ompldr.org/vZjZpaQ/sms_send.tar.bz2 или www.mediafire.com/?5i1270zu1wdb4d4
2. Python
3. Ящик на mail.ru

Распаковываем архив.
В нем находится оригинальный скрипт send.py, с помощью которого можно отправлять смс, и небольшой мой скрипт noty_send.sh для облегчения отправки уведомлений.
При вызове send.py без параметров он сразу же выдаст необходимую для отправки информацию:

$ python sms_send/send.py
Usage: send.py [options]

Options:
  -h, --help            show this help message and exit
  -n PHONE, --number=PHONE
                        Phone number. Ex: +79221412345
  -t TEXT, --text=TEXT  Sms content
  -l LOGIN, --login=LOGIN
                        Email address
  -p PASSWD, --password=PASSWD
                        Your password

Что касается моего скрипта: открываем его в текстовом редакторе

#!/bin/bash

num=+71234567890
log=qwe@mail.ru
pas=*******
msg=$1

python ./send.py -l $log -p $pas -n $num -t "$msg"

exit 0

Меняем num на свой номер, log на свою почту и pas на пароль от нее. Так же вы можете присвоить переменной msg статическую фразу в духе «Все готово, Хозяин» что бы вызывать скрипт без параметра.

Настало время проверить скрипт:

$ ./noty_send.sh "Ура, Ура, Ура"

Автор: PenguiN560


* - обязательные к заполнению поля