Видео ролики бесплатно онлайн

Смотреть фильмы бесплатно

Официальный сайт graffitistudio 24/7/365

Смотреть видео бесплатно

12.02.10 20:44 xT

СкриптыУведомления о балансе

Сначала думал очередной раз не присоединиться к Неделе Чего-Либо на Вилинуксе, так как идеи не было, но буквально в конце рабочего дня она нашлась
: )

Не нашел в нигде в Личном Кабинете своего провайдера такой опции, как получение на почту уведомлений о наличии средств на балансе.
Поэтому решил написать небольшой костыль, чтобы отправлять мне каждый день письма и смс-ки со моим балансом.

Итак, прежде всего скажу какие средства потребовались:
  • Linux : )
  • expect - позволяет интерактивным приложениям, работа которых подразумевает взаимодействие с пользователем, работать в автоматическом режиме
  • links - текстовый браузер (все остальные консольные приложения либо отказывались работать с expect, либо не могли нормально пройти аутентификацию биллинга)
  • awk, grep - утилиты для работы с текстом
  • msmtp - консольный smpt-клиент
  • cron - планировщик
  • MAIL2SMS/SMS2MAIL - подключенная услуга у оператора сотовой связи


Так как это костыль, писалось на коленке - все пути прибиты гвоздями, вылизывать совершенно не охота, работает и ладно ))

Конфиг msmtp:
у меня он ~/.msmtprc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
account default
host smtp.gmail.com
port 587

protocol smtp

tls on
tls_starttls on
tls_certcheck off

auth on
user ЯЩИК с которого будет уходит почта(юзер@домен)
password ПАРОЛЬ ящика

#хедер письма
from alexander.ku@домен

logfile /home/xt/.msmtp.log



Скрипт получения-сохранения странички личного кабинета:
у меня он ~/bin/balance_expect.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/expect

#Куда заходить
set URL "https://**************/******/*******.php"

#Логин и пароль
set USER "*************"
set PASS "*************"

#Куда сохраняем страничку
set DUMP "/home/xt/balance.html"

#Далее вызываем консольный браузер links и заставляем его в неинтерактивном режиме зайти на страничку биллинга, аутентифицироваться, пройти по пунктам меню и сохранить её(страничку) в файл.
spawn links $URL
expect "User ID"
send "$USER"
sleep 1
send "\033\[B"
send "$PASS\r"
sleep 1
expect "LANBilling | Interfejs klienta"
sleep 1
send "\033\[27"
sleep 1
send "\033\[B\033\[B\033\[B\033\[B\033\[B\033\[B\033\[B\033\[B\033\[B"
send "\r"
sleep 1
expect "Download"
send "\b\b\b\b\b\b\b\b\b\b\b"
send "$DUMP\r"
send "Q"
expect eof



Основной скрипт, вызывающий предыдущий и отправляющий результаты на смс и почту:
у меня он ~/bin/balance.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash

#Откуда брать результаты
DUMP="/home/xt/balance.html"

#Запускам скрипт сохранения странички
/home/xt/bin/balance_expect.sh

#Сохраняем баланс в переменную
BALANCE=$(cat $DUMP | grep Balans | awk {'print $2'})

#Определяем куда слать уведомления (у меня МТС)
SMS="№телефона@sms.mtslife.ru"
EMAIL="почтовый ящик"

#Формируем тело сообщений (делаю разным, так как получаю почту на гмайл, и мне не нравиться когда они падают в одну цепочку)
MESSAGE="To: me\nSubject: InetBalance $(date +"%d.%m.%Y")\n\n$BALANCE"
SMSMESSAGE="To: me\nSubject: InetBalance\n\n$BALANCE\n$(date +"%H:%M %d.%m.%Y")"

#Отправляем сообщения используя msmtp и его настройки
echo -e ${MESSAGE} | msmtp --file=/home/xt/.msmtprc $EMAIL
echo -e ${SMSMESSAGE} | msmtp --file=/home/xt/.msmtprc $SMS

#Удаляем сохраненную страничку, чтобы при следующем вызове скрипта-сохраняльщика, links не заругался на уже имеющийся файл
rm $DUMP


Теперь кидаем это в крон пользователя:
crontab -e

вбиваем туда
10 0 * * * /home/xt/bin/balance.sh

т.е. запускаем в 10 минут первого каждый день (деньги ежедневно снимаются со счета в 00:00).


Все, мой рабочий комп не выключается, и если нет проблем с электричеством или связью - я каждый день получаю уведомления о балансе
: )



mrded 12.02.10 20:55 # +0
я вот щас думаю, чего бы мне такого смс'кой отправлять себе с инета кадый день:)
booley 12.02.10 21:07 # +0
А на Теле2-Томск не получается слать. В смысле таких вещей как email2sms нет в принципе. Их техподдержка порадовала:
"Используйте Mail.ru-Agent"
Нет слов.

(хотя смски сами по себе дешевые - 0.01 за штуку + 1 руб в день)
Yuko 12.02.10 21:51 # +0
однозначно, плюс.
но у меня другая проблема: каким бы ни был баланс лицевого счета, в личном кабинете всегда 51 руб. уже полгода )
xT 12.02.10 22:12 # +0
а как ориентируешься? в слепую по датам?
Yuko 13.02.10 13:26 # +0
смс с напоминанием мне, все же, приходит (включено в настройках уведомлений).
TiFFolk 14.02.10 15:20 # +0
Тут следует использовать curl вместо expect и links
xT 15.02.10 08:38 # +0
Следует, пробовал - нормально аутентификацию пройти не может

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 96)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 2004 из 152 городов)
            Топ пользователей Топ блогов

            Новенькие: Niaque, newstoic, atheist, dieformetal, MrPack
            welinux.ru

            Смотреть видео онлайн

            Онлайн видео бесплатно


            Смотреть русское с разговорами видео

            Online video HD

            Видео скачать на телефон

            Русские фильмы бесплатно

            Full HD video online

            Смотреть видео онлайн

            Смотреть HD видео бесплатно

            School смотреть онлайн