Unix-way → IPcfg

Люблю я маленькие и удобные сервисы и утилиты. Вчера заметил на reddit любопытный сервис из подобной категории. Простой, как три копейки, но лично для меня оказался полезным.

Суть его в том, что по какому-либо событию дергаешь АПИ сервиса с некоторыми параметрами.

События могут быть совершенно разными. Например:
— Просто как пинг — из планировщика или по крону
— По логину в систему
— cURL'ом из скрипта на сайте
— Из программы, которую написал и хочешь отслеживать события в ней
Ну и так далее. Кстати, экспериментируя с сервисом, заодно выяснил, что в стандартном планировщике Windows 7 можно настроить события практически на любой чих системы. В ХР такого не было.

Пример использования.
Есть у меня серверок, который стоит в одной организации за кучей NAT'ов, внимания не требует, но иногда сам ребутится. Так получилось, что после перезагрузки там нужно выполнить некоторые операции руками. Не часто это бывает, но когда случается, то желательно узнать об этом максимально быстро.

Как настроил.
Написал небольшой скрипт на Python:

import urllib2

while True:
    try:
        proxy_handler = urllib2.ProxyHandler({'http':'192.168.0.1:3128'})
        opener = urllib2.build_opener(proxy_handler)
        f = opener.open('http://ipcfg.com/api.php?u=test&n=11111111111&d=UP_serv_1&t=+2')
        if f.getcode() == 200: 
            True, False = False, True
            break
        time.sleep(10)
    except :
        time.sleep(10)

и в cron его:

@reboot /home/ipcfg.py
Скрипт после старта системы пытается отправить на сервис строку до тех пор, пока не получить ответ 200.

Параметры запроса:
ipcfg.com/api.php — URL запроса
u=test — Логин «test», который используется для входа на ipcfg.com
n=11111111111 — код, который генерируется на сервисе
d=UP_serv_1 — это тот самый произвольный параметр, который я отправляю на ipcfg
t=+2 — временная зона. Чтобы в логе время отображалось правильно. Фиг знает, почему +2, если у меня время Московское, но именно при +2 оно отображается правильно.

На самом сервисе настроил уведомления на Email как раз по параметру «d». Т.е. когда сервис получает строку от меня «UP_serv_1» — он высылает мне уведомление. Любопытно, что для определения условия поиска по этой строке, можно использовать RegExp.

Это только один из примеров, на самом деле заюзал я эту штуку весьма разнообразно и местами извращенно. Если вам сервис понравится так же, как мне, то было бы интересно узнать ваши варианты использования. Напишите об этом в комментариях.

Скриншоты приводить не буду, т.к. на сайте есть демо-вход и можно посмотреть самостоятельно.

Для конкурса «Как я подсел на *?»

Комментариум (10)

RSS свернуть / развернуть
+
+1
avatar

pashtuun

  • 07 сентября 2012, 11:27

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/m/makenskiy/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
Нельзя операции ручками в .sh и его в init.d или rc.local? Это проще
+
0
avatar

andreich2009

  • 07 сентября 2012, 14:39

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/m/makenskiy/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
А чем проще?
+
0
avatar

terra

  • 07 сентября 2012, 16:50

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/m/makenskiy/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
Насколько знаю крон это временн`ой демон-планировщик.
+
+2
avatar

andreich2009

  • 07 сентября 2012, 18:52

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/m/makenskiy/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
Не только. Как написано — "@reboot /home/ipcfg.py" — скрипт будет запущен после перезагрузки
+
0
avatar

terra

  • 07 сентября 2012, 19:13

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/m/makenskiy/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
Да, уже нашел это.
+
0
avatar

makenskiy

  • 07 сентября 2012, 17:27

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/m/makenskiy/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
Тем что на этапе загрузки ос, будет загружаться прописанный скрипт и выполнять действия наверно.
+
+2
avatar

andreich2009

  • 07 сентября 2012, 18:51

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/m/makenskiy/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
Так и в такой реализации именно так и происходит.
+
-1
avatar

makenskiy

  • 08 сентября 2012, 17:21

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/m/makenskiy/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
Хех, точно, сорри.
+
+2
avatar

terra

  • 07 сентября 2012, 19:15

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/m/makenskiy/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
Фича запуска при старте системы у крона есть, при выяснении этого натолкнулся на довольно удобную GUI-шину gnome-schedule
+
-1
avatar

makenskiy

  • 08 сентября 2012, 17:25

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/m/makenskiy/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
Спасибо не знал. Раз в пятилетку заруливаю в crontab, и то не на десктопе. :)

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.