Skip to content

Instantly share code, notes, and snippets.

@tcotav
Last active June 26, 2016 22:43
Show Gist options
  • Save tcotav/c9f1dc976a97707ec1124bee15d1f0bd to your computer and use it in GitHub Desktop.
Save tcotav/c9f1dc976a97707ec1124bee15d1f0bd to your computer and use it in GitHub Desktop.
ping script to run in cron to track network outages at home (comcast)
#!/usr/bin/python
import os
import logging
import logging.handlers
log_file_name = '/Users/james/dev/uptime/logs/nettest.log'
logging_level = logging.INFO
import datetime as dt
"""
comcast dns
nameserver 75.75.75.75
nameserver 75.75.76.76
google dns
nameserver 8.8.8.8
nameserver 8.8.4.4
google.com
facebook.com
yahoo.com
twitter.com
"""
def ping(host):
response = os.system("/sbin/ping -c 1 " + host + " > /dev/null 2>&1")
# returns 0 if successful
return response
start=dt.datetime.now()
formatter = logging.Formatter('%(asctime)s %(name)s %(levelname)s %(message)s')
handler = logging.handlers.TimedRotatingFileHandler(log_file_name, when="midnight")
handler.setFormatter(formatter)
logger = logging.getLogger() # or pass string to give it a name
logger.addHandler(handler)
logger.setLevel(logging_level)
targets=['75.75.75.75','8.8.8.8', 'google.com', 'facebook.com', 'yahoo.com', 'twitter.com']
retList=[]
for host in targets:
resp=ping(host)
retList.append("%s" % resp)
end=dt.datetime.now()
logging.info("%s,%s,%s" % ("|".join(retList), start.strftime("%H:%M:%S"), end-start))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment