Linux + Python: Script para checar o status dos seus sites
Os serviços de hosting que você utiliza estão meio ruim das pernas? Vez ou outra você descobre que seus sites estão fora do ar e ninguém te notificou a respeito?
Infelizmente, coisas assim estão acontecendo por aqui com uma certa frequência. Por isso, resolvi escrever o script abaixo, cuja função é mostrar uma mensagem de notificação sempre que algum dos sites pré-determinados saiam do ar: 1
#!/usr/bin/env python # -*- coding: utf-8 -*- import httplib import pynotify def display_message(title, message): if pynotify.init('Website Status'): n = pynotify.Notification(title, message) n.show() def check_status(*websites, **kwargs): timeout = kwargs.get('timeout', 5) for website in websites: conn = httplib.HTTPConnection(website, timeout=timeout) try: conn.request('GET', '/') response = conn.getresponse() if response.status != 200: raise Error() except: display_message(website, 'Web site could not be reached!') if __name__ == '__main__': check_status('www.awebsite.com', 'www.anotherwebsite.com')
O script em funcionamento:
Para completar, se você deseja que esse script seja executado uma vez a cada 5 minutos, basta inserir a linha abaixo no seu crontab:
*/5 * * * * /path/to/script.py
Pronto! Agora, se o seu serviço de hosting continuar deixando a desejar, talvez a melhor solução seja mesmo mudar para outro lugar…
- A biblioteca
python-notifyprecisa estar instalada para que o script funcione. ↩



E ai Daniel,
legal esse script.
Já estou usando aqui na empresa. Botei o bicho pra rodar e já simulei umas quedas no nosso servidor. Legal pra kramba…
Valeu,
abraços
Olá Fausto,
Valeu por avisar! É sempre bom saber que estamos fazendo algo de útil a outras pessoas!
Abraços.
Show Daniel!
[...] http://weblog.destaquenet.com/2009/07/20/linux-python-script-para-checar-o-status-dos-seus-sites/ [...]
[...] esse artigo é para você! Nele, mostrarei como escrever um script em Python, nos moldes do mostrado no post anterior, que consulta o site da Ticketmaster automaticamente e, através de uma técnica conhecida como web [...]