Автор Тема: Скррипт за тест на интернет страници  (Прочетена 2161 пъти)

tmacbg

  • Участници
  • ***
  • Публикации: 5
    • Профил
Здравейте ,

Може ли да ми погнете с направата на скрипт , които да следи дали дадени страници на различни хостинги са ок - т.е дали има съдържание на сайтовете или са спрели поради изчерпване на bandwidth , quota или просто хостинга е спрял - пробвах с nagios и icinga , но нямаше особен резултат затова реших да пробвам да направя нещо , но леко съм в задънена улица - пробвах различни решения с httping , но при него ако сайта е достигнал bandwidth лимита си httping не го изкарва като грешка :)
Ако някой има идея за нещо друго free free да предлага :)

Благодаря предварително !   
Активен

dejuren

  • Напреднали
  • *****
  • Публикации: 1025
  • Distribution: Ubuntu, RedHat
  • Window Manager: lxde KDE4
    • Профил
Re: Скррипт за тест на интернет страници
« Отговор #1 -: Jul 11, 2012, 16:02 »
Тази идея как ти се вижда за отскок: http://www.linuxjournal.com/content/downloading-entire-web-site-wget

В смисъл сваляш страниците които те интересуват, след което сравняваш има ли ги, няма ли ги, има ли в тях сдържание и т.н.
Активен

http://webchat.freenode.net/?channels=ubuntu-bg
The quieter you become, the more you are able to hear.
Две седмици цъкане с мишката спестяват два часа четене на документацията.

morbid_viper

  • Напреднали
  • *****
  • Публикации: 266
  • Distribution: (Open)SUSE since v5.3 (1999)
  • Window Manager: KDE ориентиран
    • Профил
Re: Скррипт за тест на интернет страници
« Отговор #2 -: Jul 11, 2012, 16:47 »
най-лесно е в самите страници да си сложиш някакъв низ, за който да следиш и яко не получиш този низ, значи нещата не са както трябва, очевидно…
това е най-малоумният начин, прост и работещ…
ако имаш достъп до кода на страниците можеш да си направиш доста по-смислена статистика, например при зареждането на всяка една страница можеш да повишаваш някой брояч в memcache, да речем... по този начин можеш да си направиш отделна страничка, която да ти изобразява в реално време нещата и един cron, който да следи дали стойностите на дадените броячи е в желаните граници и евентуално пращаш sms-и, е-пощи и т.н. вдигаш гюрунтия.
по този начин ще промениш измерването от двоичното „работи/не работи“ в доста по-информативното „страници в секунда“. това пък отваря врати да някакво измерване на производителността на различни машини и т.н.

… личен опит…

Активен

-------------------------------------------------
Blessed are we to taste this life of sin!
-------------------------------------------------
Registered Linux user #251276

runtime

  • Напреднали
  • *****
  • Публикации: 807
  • Distribution: Ubuntu 14.04
  • Window Manager: Unity
  • LZ1DOT
    • Профил
    • WWW
Re: Скррипт за тест на интернет страници
« Отговор #3 -: Jul 11, 2012, 16:48 »
По скоро си мисля, че може да ползваш CURL да видиш дали не ти връща някоя грешка като 404 и т.н., да сравниш и да връща някакъв резултат или там каквото си си искаш. Мисля си, че ако ти спрат достъпа все ще връща 403, 404 или 405 :) Ама знам ли, то всеки луд с номера си при хостингите :)

Примери за скрипта в нета колкото си искаш има, за това няма да пиша. Ако нещо не се оправиш драсни един ред.
Жокер: CURLINFO_HTTP_CODE
Активен

Oxy

  • Напреднали
  • *****
  • Публикации: 253
  • Distribution: Fedora / Gentoo / Debian
  • Window Manager: KDE (4.2/ 3.5)
    • Профил
    • WWW
Re: Скррипт за тест на интернет страници
« Отговор #4 -: Jul 11, 2012, 16:50 »
Едно хитро решение:
Правиш в http://www.example.com/up.php
като up.php ти е
<?php
echo "1";
?>

после един баш скрипт:

#!/bin/bash
if [lynx -source http://www.example.com/up.php != "1"]
then echo "example.com not working" >> log.file
fi

после това в кронтаба на един час и може да си набуташ един час в лога...

може да направиш и по-готин пхп скрипт който ти дава 1цата ако и базата данни работи...
за баша малко не съм сигурен, но ако има проблеми експертите да споделят...

morbid_viper

  • Напреднали
  • *****
  • Публикации: 266
  • Distribution: (Open)SUSE since v5.3 (1999)
  • Window Manager: KDE ориентиран
    • Профил
Re: Скррипт за тест на интернет страници
« Отговор #5 -: Jul 11, 2012, 16:56 »
…после един баш скрипт:

#!/bin/bash
if [lynx -source http://www.example.com/up.php != "1"]
then echo "example.com not working" >> log.file
fi

за баша малко не съм сигурен, но ако има проблеми експертите да споделят...

да, малко е счупен скрипта, та ето по-правдоподобна версия... просто синтаксис:

if [ $( lynx -source http://www.example.com/up.php ) -ne "1"] ; then
     echo "example.com not working" >> log.file
fi
Активен

-------------------------------------------------
Blessed are we to taste this life of sin!
-------------------------------------------------
Registered Linux user #251276

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Скррипт за тест на интернет страници
« Отговор #6 -: Jul 11, 2012, 17:54 »
Това е скриптът, който съм си драснал за мен. В променливата $testhost слагам домейн (може и IP, но тогава се губи проверката за работещ DNS), който се намира в същата мрежова област, за да направя предварителна проверка дали самият аз имам интернет, и ако нямам, да не се прави излишна проверка надолу. Т.е., ако сайтът ти е в България, сложи си в $testhost някой сигурен домейн от българското пространство.
Код
GeSHi (Bash):
  1. #!/bin/bash
  2.  
  3. site='http://адрес.на.сайта/може.и.определена.страница'
  4. timeout='20'
  5. content='Текст за търсене'
  6. mailtextdown='Текст в email-а (sms-а), ако $content не е намерен'
  7. mailtextup='Текст в email-а (sms-а), ако $content се намери'
  8. mailfrom='някакъв@адрес.на.изпращач'
  9. mailto=( адрес@на.първи.получател адрес@на.втори.получател )
  10. checkfile='/пълен/път/до/папката/където/се/създава/файл/указващ/текущото/състояние/и/името/на/файла'
  11. testhost='домейн или IP на машина в същата мрежова област'
  12.  
  13. ###### НЕ Е НУЖНО ПОВЕЧЕ РЕДАКТИРАНЕ ######
  14.  
  15. ping -c 1 -w 10 $testhost &>/dev/null
  16. if [ $? -ne 1 ] ; then
  17.    /usr/bin/curl -s --connect-timeout $timeout $site |grep "$content" &>/dev/null
  18.    if [ $? -ne 0 ] ; then
  19. if [ ! -e $checkfile ] ; then
  20.    touch $checkfile
  21.    for i in "${mailto[@]}"
  22.    do
  23. echo "$mailtextdown" | mail -a "From: $mailfrom" -t $i
  24.    done
  25. fi
  26.    else
  27. if [ -e $checkfile ] ; then
  28.    rm $checkfile
  29.    for i in "${mailto[@]}"
  30.    do
  31. echo "$mailtextup" | mail -a "From: $mailfrom" -t $i
  32.    done
  33. fi
  34.    fi
  35. fi
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

ieti

  • Напреднали
  • *****
  • Публикации: 92
  • Distribution: Arch, Debian
  • Window Manager: XFCE
    • Профил
Re: Скррипт за тест на интернет страници
« Отговор #7 -: Jul 12, 2012, 14:01 »
Или може да погледнеш и това: Use Google Docs to Monitor Your Website’s Uptime  ;D
Активен