Автор Тема: как следить за сообщениями на сайте [РЕШЕНО]  (Прочитано 730 раз)

Оффлайн Kirikekeks

  • Полу-попутчик, полу-мудрец, полу-невежда, полу-подлец...
  • Давно тут
  • **
  • Сообщений: 314
    • Email
Доброго дня всеведующие!
Часто пишут, мол "ответ на официальном сайте". Как бы создать скрипт, который нужный тебе ответ найдёт и отправит по почте.
Пример: жду слушания на официальном сайте
lynx -dump http://gov.spb.ru/gov/terr/reg_moscow/stroi/publichnye-slushaniya/|grep март -B4 -A5
c выводом:
Спойлер
Информационное сообщение о проведении публичных слушаний
     __________________________________________________________________

             10 марта 2015 года в 13.00 в малом зале КДЦ «Московский»
   (Московский пр., дом 152, вход с ул. Рощинской) состоятся публичные
   слушания по вопросу предоставления разрешения на условно разрешенный
   вид использования земельного участка и/или объекта капитального
   строительства для размещения вестибюлей метрополитена по адресу:
   Санкт-Петербург, Московский район, ул. Киевская, дом 13, литера А.
--
     __________________________________________________________________

   Информационное сообщение о проведении публичных слушаний

   24 марта 2014 года в 17.00 в малом зале КДЦ «Московский»  (Московский
   пр., дом 152, вход с ул. Рощинской) состоятся публичные слушания по
   вопросу предоставления разрешения на условно разрешенный вид
   использования земельного участка и/или объекта капитального
   строительства для размещения жилого дома (жилых домов) по адресу:
   Санкт-Петербург, Московский район, Пулковское шоссе, дом 30, литера З.
--
     __________________________________________________________________

   Информационное сообщение о проведении публичных слушаний

   17 марта  в 17.00 в малом зале  КДЦ «Московский» (Московский пр., 152)
   состоятся публичные слушания по проекту межевания и  изменениям в
   проект планировки территории, ограниченной Московским пр., наб.
   Обводного канала, полосой отвода Балтийской линии Октябрьской железной
   дороги, Благодатной ул., в Адмиралтейском и Московском районах,
   утвержденный постановлением Правительства
--
     __________________________________________________________________

   Информационное сообщение о проведении публичных слушаний

   13 марта  в 17.00 в малом зале  КДЦ «Московский» (Московский пр., 152)
   состоятся публичные слушания по изменениям в проект планировки
   территории, ограниченной Московским пр., наб. Обводного канала, полосой
   отвода Балтийской линии Октябрьской железной дороги, Благодатной ул., в
   Адмиралтейском и Московском районах, утвержденный постановлением
   Правительства Санкт-Петербурга от 17.07.2007 № 864, в части территории

А вот если сделать ту же команду но грепнуть август, то вывод будет нулевой.
Хочу сделат скрипт, но не понимаю синтаксиса, только логику:
Если
lynx -dump http://gov.spb.ru/gov/terr/reg_moscow/stroi/publichnye-slushaniya/|grep август -B4 -A5
ничего не выводит,
То выход
В обратном случае (если есть вывод), то отправить мне его по почте, что то вроде
echo вывод указанной команды с текстом mutt -s "Опа! новые публичные слушания"
Ну как то так, желательно предельно просто, на уровне ламера.
« Последнее редактирование: 18.08.2015 12:35:54 от Kirikekeks »
Ламер

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Не очень понял вопрос, но можно, например повесить какой-нибудь скрипт на crontab, и тогда, полученный stdout этого скрипта, будет автоматом отсылаться пользователю на локальную почту через postfix.

Оффлайн Kirikekeks

  • Полу-попутчик, полу-мудрец, полу-невежда, полу-подлец...
  • Давно тут
  • **
  • Сообщений: 314
    • Email
будет автоматом отсылаться пользователю на локальную почту через postfix.
У меня домашний комп, нет в нём posfix  и локальной почты. А вопрос просто, как написать такой скрипт, буквально как, я знаю только несколько команд в баше. То есть извините, я прошу помочь буквально написать этот скрипт за меня, потому как он кажется мне простым для знающих баш.
if
lynx -dump http://gov.spb.ru/gov/terr/reg_moscow/stroi/publichnye-slushaniya/|grep август -B4 -A5
как сказать башу что вывода нет???
then
exit
fi
echo как обозначить вывод текста lynxом? |mutt -s "Опа! Новые слушания" -- name@mail.ya

а я поучусь. Скрипт может пригодится при мониторинге всяких разных сайтов, ходить на которые постоянно нет желания совсем, а на секретаршу я не заработал.
« Последнее редактирование: 13.08.2015 13:49:33 от Kirikekeks »
Ламер

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Ну как нет - установите.
У меня то-же домашний и в нём это есть.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Сбосьте вывод в какую-нибудь переменную и смотрите ключом -z не нулевой-ли он.

Оффлайн Kirikekeks

  • Полу-попутчик, полу-мудрец, полу-невежда, полу-подлец...
  • Давно тут
  • **
  • Сообщений: 314
    • Email
как нет - установите
СПасибо, на мысль навели. А mutt мне хватает полностью, пока не осознал необходимости в postfix
Ламер

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
А он очень удобен, если в системе используются задачи в crontab/anacron.
Лично у меня на них весит самописный скрипт обновление локального репозитория (нужен мне, если окажусь в месте, где нет интернета + посмотреть исходники того, или иного пакета, не лазя в интернет) + обновление всяких локальных репозиториев исходников из упстрима.
Очень удобно потом читать отчёты об этом в любимом почтовике.

Оффлайн ps1h

  • Завсегдатай
  • *
  • Сообщений: 418
    • Нихрена не работает!
изобретаете RSS?


Например такой скрипт можно


if [ "`lynx -dump http://gov.spb.ru/gov/terr/reg_moscow/stroi/publichnye-slushaniya/|grep $1 -B4 -A5`" == "" ]; then
echo "ПУСТО"
else lynx -dump http://gov.spb.ru/gov/terr/reg_moscow/stroi/publichnye-slushaniya/|grep $1 -B4 -A5

Сохраняете это в файл test.sh, делаете его исполняемым, а потом в командной строке 
test месяц

ну и отправку на почту можно прикрутить, а также запуск этого файла через cron раз в сутки...
« Последнее редактирование: 14.08.2015 07:00:28 от ps1h »

Оффлайн Kirikekeks

  • Полу-попутчик, полу-мудрец, полу-невежда, полу-подлец...
  • Давно тут
  • **
  • Сообщений: 314
    • Email
== ""
Спасибо! Посмакую в понедельник! Можно {"опишите своими словами работу двигателя внутреннего сгорания" - прррр....} объяснить то что в цитате.
Ламер

Оффлайн ps1h

  • Завсегдатай
  • *
  • Сообщений: 418
    • Нихрена не работает!
== ""
Спасибо! Посмакую в понедельник! Можно {"опишите своими словами работу двигателя внутреннего сгорания" - прррр....} объяснить то что в цитате.
это функция сравнения, если ответ равен "", то есть пустой, тогда вывести надпись "пусто".

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
if [ "`lynx -dump http://gov.spb.ru/gov/terr/reg_moscow/stroi/publichnye-slushaniya/|grep $1 -B4 -A5`" == "" ]; then
echo "ПУСТО"
else lynx -dump http://gov.spb.ru/gov/terr/reg_moscow/stroi/publichnye-slushaniya/|grep $1 -B4 -A5
Правильние

rez=`lynx -dump http://gov.spb.ru/gov/terr/reg_moscow/stroi/publichnye-slushaniya/|grep $1 -B4 -A5`
if [  -n  $rez ]; then
echo $rez
fi

Оффлайн Kirikekeks

  • Полу-попутчик, полу-мудрец, полу-невежда, полу-подлец...
  • Давно тут
  • **
  • Сообщений: 314
    • Email
Спасибо!
#!/bin/bash
if [ "`lynx -dump http://gov.spb.ru/gov/terr/reg_moscow/stroi/publichnye-slushaniya/|grep $1 -B4 -A5`" == "" ]; then
echo "ПУСТО"
else lynx -dump http://gov.spb.ru/gov/terr/reg_moscow/stroi/publichnye-slushaniya/|grep $1 -B4 -A5
fi
работает и принцип ясен!
Пробую второй.
Вылезла ошибка написания в третьей строке, заменил на test, мне более понятный по синтаксису, что б не переспрашивать.
#!/bin/bash
rez=`lynx -dump http://gov.spb.ru/gov/terr/reg_moscow/stroi/publichnye-slushaniya/|grep март -b4 -a5`
if  test -n '$rez'; then
lynx -dump http://gov.spb.ru/gov/terr/reg_moscow/stroi/publichnye-slushaniya/|grep март -b4 -a5 
fi
Вывод команды через эхо сложно воспринимать с экрана, поэтому поставил саму команду как есть.
Новый вывод
Спойлер
5077-Публичные слушания
5113-
5114-   Информационное сообщение о проведении публичных слушаний
5225-     __________________________________________________________________
5297-
5298:             10 марта 2015 года в 13.00 в малом зале КДЦ «Московский»
5403-   (Московский пр., дом 152, вход с ул. Рощинской) состоятся публичные
5523-   слушания по вопросу предоставления разрешения на условно разрешенный
5656-   вид использования земельного участка и/или объекта капитального
5779-   строительства для размещения вестибюлей метрополитена по адресу:
5904-   Санкт-Петербург, Московский район, ул. Киевская, дом 13, литера А.
--
32688-   48, Восход-2000
32713-     __________________________________________________________________
32785-
32786-   Информационное сообщение о проведении публичных слушаний
32897-
Уже читается хорошо.
Спасибо за помощь, в моём случае удобнее пользоваться ps1h скриптом, по трём причинам:
возможно изменять переменные для команды греп, что бы сразу получать более релевантный запрос
вывод в этом случае получается более удобно читаемым с экрана.
он более понятен для чайника.
Тем не менее катарсис был в обоих случаях, спасибо за ответы.
« Последнее редактирование: 18.08.2015 12:35:20 от Kirikekeks »
Ламер

Оффлайн ps1h

  • Завсегдатай
  • *
  • Сообщений: 418
    • Нихрена не работает!
if [ "`lynx -dump http://gov.spb.ru/gov/terr/reg_moscow/stroi/publichnye-slushaniya/|grep $1 -B4 -A5`" == "" ]; then
echo "ПУСТО"
else lynx -dump http://gov.spb.ru/gov/terr/reg_moscow/stroi/publichnye-slushaniya/|grep $1 -B4 -A5
Правильние

rez=`lynx -dump http://gov.spb.ru/gov/terr/reg_moscow/stroi/publichnye-slushaniya/|grep $1 -B4 -A5`
if [  -n  $rez ]; then
echo $rez
fi



да хоть вот так


<?php
$q
=passthru("lynx -dump http://gov.spb.ru/gov/terr/reg_moscow/stroi/publichnye-s
lushaniya/|grep " 
$argv[1] . " -B4 -A5");
if (
$q>0) {
    echo 
$q;
    }
    else {echo 
'новостей нет';}
?>


суть не меняется, а дальше можно дописать всё что угодно...  :-)

Оффлайн Kirikekeks

  • Полу-попутчик, полу-мудрец, полу-невежда, полу-подлец...
  • Давно тут
  • **
  • Сообщений: 314
    • Email
да хоть вот так
Спасибо что не так :-) Мне принципиально хотелось справиться с этой задачей в области моего понимания.
Ламер