nehaffian 01.12.2009 00:09
Скрипты на bash — Погода gismeteo по sms
Когда-то на Хабре выкладывали скрипт, который парсил rss нужного города в gismeteo и отсылал на телефон пользуясь email2sms. У него было два недостатка: он был написан под FreeBSD (хотя и довольно просто портировался под Linux) и, что самое главное, он не показывал осадков (о_О). Поэтому я решил модифицировать скрипт, чтоб он брал информацию из xml для информеров, конвертировал в удобную форму и отсылал по смс. Потом передумал и просто написал с нуля.Надо сказать, что это мой третий-пятый скрипт на bash вообще, впервые пользовался awk и никогда до этого не работал с xml. Поэтому мне пришлось все это учить до необходимого уровня, что и было проделано за несколько часов гугления. Говорю я все это для того, чтоб вы не высмеивали код за очевидные (не для меня) ляпы, а подсказали, что и как можно исправить\оптимизировать. За это я был бы очень благодарен (:
Собственно для работы скрипта обязательно нужна программа xmlstarlet. Отправка письма же идет через mutt, но ее можно легко можно заменить на, к примеру, mail.
Вот сам код:
1 |
#!/bin/bash
|
В настройках крона нужно задать исполнение скрипта на 20:30 или позднее, т.к. до этого времени отдается погода не на следующий день, а на сегодня+завтра.
На этом все. Надеюсь, что кому-то пригодится (: .
UPD. Некоторые операторы блокируют услугу email2sms изначально. Например, чтоб активировать ее абонентам Djuice или Киевстар нужно отправить пустое сообщение на номер 7021 (бесплатно).
renya 01.12.2009 08:25 #
+ 0 -
Клёво!
Спасибо!
Маленькое уточнение:
ЕМНИП, то этот шаблон для контрактных абонентов.
Для prepaid нужно будет писать xxxxxxxxxx@2sms.kyivstar.net
Маленькое уточнение:
ЕМНИП, то этот шаблон для контрактных абонентов.
Для prepaid нужно будет писать xxxxxxxxxx@2sms.kyivstar.net
Надо сказать, что у меня работает как первый, так и второй гейт (сам я на djuice). Да и написано это только для примера.
LF МТС Москва sms gate. На официальке не нашел, да и гугл какие то проги шаманские и дохликов предлагает =\
Мда...
Для моего города нет XML. Взял ближайший. Вбил номер.
Результат:
xmlstarlet и mutt установлены.
В чем может быть дело?
Для моего города нет XML. Взял ближайший. Вбил номер.
Результат:
3
1
5
5
Сообщение отправить не удалось, процесс-потомок вернул 127 (Exec error.).
Сообщение отправить не удалось.
xmlstarlet и mutt установлены.
В чем может быть дело?
Хм.. Странно.
А sendmail\postfix\exim\msmtp либо любой другой MTA установлен\настроен?
А sendmail\postfix\exim\msmtp либо любой другой MTA установлен\настроен?
ну, mutt или mail отправляют письма с их помощью.
вот интересная статья:
http://debback.blogspot.com/2008/04/mta-mutt-smtp.html
вот интересная статья:
http://debback.blogspot.com/2008/04/mta-mutt-smtp.html