[Rodolfo Carvalho] Desligar o computador automaticamente quando offline (usando Python)

Já faz um tempo que estou tendo problemas com minha conexão ADSL. Frequentemente acontece alguma bizarrice na minha linha telefônica e preciso fazer alguns procedimentos manuais para reconectar.

Como não compensa montar um robô para realizar a reconexão, passou a ser interessante ao menos desligar o PC quando ele estiver offline…

Então, um dia desses antes de dormir escrevi um curto script Python, que só funciona em Linux, para desligar o computador quando não conseguir acessar uma URL.

#!/usr/bin/env python
import os
from time import sleep, strftime
from urllib2 import urlopen, URLError

TEST_URL = "http://www.google.com"

while 1:
   try:
       urlopen(TEST_URL)
       print '%s [OK] %s' % (strftime("%c"), TEST_URL)
   except URLError:
       # I am liked offline, halt!
       os.system("shutdown now -h")
       break
   sleep(180)

O que faço depois é, antes de ir dormir, rodar sudo ./halt_when_offline.py > hwo.log.