#!/usr/bin/env python
# Filename: load_watch.py
# Description: emails me if load too high
# Supported Langauge(s): Python 2.5.1
# --------------------------------------------------------
import commands
import os
import time
import smtplib
def main():
while(1):
frequency = 60 * 10 # ten minutes
warn_load = 6.0
loadcmd = 'cut -d " " -f1 /proc/loadavg'
loadavg = float(commands.getoutput(loadcmd))
if loadavg > warn_load:
send_warning(loadavg)
time.sleep(frequency)
print loadavg
def send_warning(loadavg):
"""emails high load as subject"""
print "warning"
domain = 'domain.tld'
smtpServer = 'mail.' + domain
fromAddr = 'load_watch@mail.' + domain
toAddr = 'me@' + domain
msg = ""
msg += "To: " + toAddr + "\n"
msg += "From: " + fromAddr + "\n"
msg += "Subject: " + 'Mail Load: %s' % loadavg
msg += "\n\n"
server = smtplib.SMTP(smtpServer)
server.set_debuglevel(0)
server.sendmail(fromAddr, toAddr, msg)
if __name__=="__main__":
main()
Thursday, October 18, 2007
load watch
If you want to keep your eye on a system and you don't even have cron you can keep this script running. It wakes up every 10 minutes and sends me an email if the load is more than six:
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment