Re: www site monitor
On Fri, Feb 10, 2012 at 05:29:02PM +0000, pch0317 wrote:
> Hi list,
>
> I must monitor remote site to check that it works. I refresh this
> site from time to time in web browser. Can I automate this process?
> I search for service which:
> - monitors *remote* WWW site (via http request)
> - when remote site doesn't respond for example 5 minutes it notify
> some person (via e-mail or SMS).
>
> Is that service available in Debian repository? Or is there any
> commercial product which do that?
>
assume you have a local working smtp server, let's check if debian is
online by running following script from cron.
-------------------Begin------------------
#!/usr/bin/env python
import urllib2
import cookielib
URL = 'http://www.debian.org/'
def browser():
cj = cookielib.CookieJar()
cookie_support = urllib2.HTTPCookieProcessor(cj)
opener = urllib2.build_opener(urllib2.HTTPHandler, cookie_support)
return opener
def sendmail(subject, msgbody):
'''send mail to gmail via a working local exim4'''
import smtplib
from email.mime.text import MIMEText
msg = MIMEText(msgbody)
from_addr = 'my_address'
dest_addr = 'man_on_duty'
msg['Subject'] = subject
msg['From'] = from_addr
msg['To'] = dest_addr
msg.set_charset('utf8')
s_obj = smtplib.SMTP('localhost')
s_obj.sendmail(from_addr, dest_addr, msg.as_string())
print 'Successfully sent mail to {0}'.format(dest_addr)
s_obj.quit()
def main(url):
brs = browser()
try:
site = brs.open(url)
except urllib2.URLError:
sendmail('datacenter on fire?')
except urllib2.HTTPError:
sendmail('or under water')
if __name__ == "__main__":
main(URL)
--------------------end-------------------
--
Chen Wei
Reply to: