python在Ubuntu服务器上的监控脚本及短信通知

刚写完一点关于python 监控脚本部署到ubuntu上,可以实时将服务器信息发送到手机上了。就足足折腾了整个周末,服务器总算是折腾告一段落。从系统的部署,ssh安全设置,防火墙设置,wordpress apache搭建,然后又转到nginx,其中涉及到的一些php,wordpress 主题的修改,各类插件的设置等等都是第一次弄,其中有好多问题还好从网上找到了一些解决方案。可惜还有些还是没有解决,包括 wp supercache在debug时一直提示super cache disabled,无法正常应用,只能有wp cache起作用。先只有凑活用着,等有时间再解决。

下面为使用python在服务器上进行相关参数的统计脚本,然后通过smtp 模块将Email发送到邮箱,邮箱会通过邮件通知然后短信发送到我手机上。(ps:没有短信接口只好折腾转下了)。刚写完的主要功能为统计服务器的内存及磁盘信息,通过python调用系统的相关命令生成。为了减少发送到手机上的数据量,做了相关的缩减,自己能看懂就好。python比较强大,代码也很简单,实现详细代码如下。后续还得继续扩充到接口,cpu,进程等的监控。

#author:H.J
#blogurl http://www.higis.org

#邮件服务器地址及发送邮件账户和密码
MAIL_FROM='****@163.com'
SMTP_SERVER='smtp.163.com'
EMAIL_USER='*****'
EMAIL_PASSWD='********'

#对应服务器的邮件接收人,多个的话再考虑为数组
MAILS ='****@163.com'

def sendmail(body):
    #发送邮件
    server=smtplib.SMTP(SMTP_SERVER)
    server.login(EMAIL_USER,EMAIL_PASSWD)
    server.sendmail(MAIL_FROM, MAILS, body)
    server.quit()

#暂时只统计了内存及硬盘,组织形式可再详细,但发送到手机就缩减自己看懂即可
Monitor_Items={
    "硬盘使用":"df -h | grep '/dev/xvda' | awk 'BEGIN { OFS=\",\" } {print $2,$3,$4,$5}'",
    "内存使用": "free -m | grep 'Mem' | awk 'BEGIN { OFS=\",\" } {print $2,$3,$4,$7}'"
}

def getCmdData(cmd):
    pipe=os.popen(cmd)
    data=pipe.read().strip()
    return data

def sendinfo():
    body=''

    for item in Monitor_Items:
        body+=item+"\n"
        data= getCmdData(Monitor_Items[item])+"\n"
        body+=data+"\n"
    if  body.isspace():
        body= 'get no data'

    senddata='''''From: %s
To: %s
Subject: %s

%s''' % (MAIL_FROM,MAILS,'Server-'+time.strftime('%Y-%m-%d %H:%M:%S'),body)
    print senddata
    sendmail(senddata)

if __name__=="__main__":
    sendinfo()

本文固定链接: http://www.higis.org/2012/04/22/python-on-ubuntu-static/ | Hi,GIS


该日志由 H.J 于2012年04月22日发表在 服务器, 程序 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: python在Ubuntu服务器上的监控脚本及短信通知 | Hi,GIS
关键字: , , ,

python在Ubuntu服务器上的监控脚本及短信通知:等您坐沙发呢!

发表评论

快捷键:Ctrl+Enter