首页 > 代码库 > python登录cacti抓取服务信息图自动发周报
python登录cacti抓取服务信息图自动发周报
#/usr/bin/env python # -*- coding: utf-8 -*- import time,datetime,socket,urllib,urllib2,cookielib,re import smtplib,string from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.image import MIMEImage log_url=‘http://ip地址/cacti/‘ HOST ="smtp.139.com" #定义smtp主机 SUBJECT = "locik周报" #定义邮件主题 TO = "11111111@qq.com,111111111@qq.com" #定义邮件收件人 TO_list = TO.split(",") s_TO = string.splitfields(TO,",") FROM = "1111111@139.com" #定义邮件发件人 def Time_Shifting(): threeDayAgo = (datetime.datetime.now() - datetime.timedelta(days = 11)) otherStyleTime = threeDayAgo.strftime("%Y-%m-%d %H:%M:%S") format_otherStyleTime = "%s 00:00:00" % otherStyleTime.split()[0] global start start=time.mktime(time.strptime(format_otherStyleTime,‘%Y-%m-%d %H:%M:%S‘)) threeDayAgo = (datetime.datetime.now() - datetime.timedelta(days = 5)) otherStyleTime = threeDayAgo.strftime("%Y-%m-%d %H:%M:%S") result = "%s 00:00:00" % otherStyleTime.split()[0] global end end=time.mktime(time.strptime(result,‘%Y-%m-%d %H:%M:%S‘)) return start,end def Login(): cj = cookielib.CookieJar() global opener opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) login_data = urllib.urlencode( {‘action‘:‘login‘,‘login_username‘:‘用户名‘,‘login_password‘:‘密码‘ }) page = opener.open(log_url,data = login_data ) html = page.read() if re.findall("graphs_new.php",html): print "ok" else: print "eerr" page.close() def list_url_186(): global list_186 list_186 = ["http://ip地址/cacti/graph_image.php?local_graph_id=78&rra_id=0&view_type=tree&graph_start=%s&graph_end=%s"%(int(start),int(end)), "http://ip地址/cacti/graph_image.php?local_graph_id=30&rra_id=0&view_type=tree&graph_start=%s&graph_end=%s" %(int(start),int(end)), "http://ip地址/cacti/graph_image.php?local_graph_id=31&rra_id=0&view_type=tree&graph_start=%s&graph_end=%s" %(int(start),int(end)), "http://ip地址/cacti/graph_image.php?local_graph_id=29&rra_id=0&view_type=tree&graph_start=%s&graph_end=%s" %(int(start),int(end)), ] def Get_Image(): count=0 for url in list_186: print url count+=1 img=opener.open(url) print count if count == 1: file_object = open(‘img/186-1week-disk.png‘,‘wb‘) file_object.write(img.read()) elif count == 2: file_object = open(‘img/186-1week-CpuLoad.png‘,‘wb‘) file_object.write(img.read()) elif count == 3: file_object = open(‘img/186-1week-Network.png‘,‘wb‘) file_object.write(img.read()) elif count == 4: file_object = open(‘img/186-1week-Memory.png‘,‘wb‘) file_object.write(img.read()) def addimg(src,imgid): #添加图片函数,参数1:图片路径,参数2:图片ID fp = open(src,‘rb‘) #打开文件 msgImage = MIMEImage(fp.read()) #创建MIMEImage对象,读取图片内容并作为参数 fp.close() #关闭文件 msgImage.add_header(‘Content-ID‘,imgid) #指定图片文件的Content-ID,<img>标签src用到 return msgImage #返回msgImage对象 def sendmail(): msg = MIMEMultipart(‘related‘) #创建MIMEMultipart对象,采用related定义内嵌资源的邮件体 msgtext = MIMEText(""" <table width="600" border="0" cellspacing="0" cellspacing="4"> <tr bgcolor="#CECFAD" height="20" style="font-size:14px"> <td colspan=2>以下是ip地址系统状态图</td> </tr> <tr bgcolor="#EFEBDE" height="100" style="font-size:13px"> <td> <img src="http://www.mamicode.com/cid:network"></td><td> <img src="http://www.mamicode.com/cid:load"></td> </tr> <tr bgcolor="#EFEBDE" height="100" style="font-size:13px"> <td> <img src="http://www.mamicode.com/cid:mem"></td><td> <img src="http://www.mamicode.com/cid:disk"></td> </tr> </table>""","html","utf-8") #<img>标签的src属性是通过Content-ID来引用的 msg.attach(msgtext) #MIMEMultipart对象附加MIMEText的内容 msg.attach(addimg("img/186-1week-Network.png","network")) #使用MIMEMultipart对象附加MIMEImage的内容 msg.attach(addimg("img/186-1week-CpuLoad.png","load")) msg.attach(addimg("img/186-1week-Memory.png","mem")) msg.attach(addimg("img/186-1week-disk.png","disk")) msg[‘Subject‘] = SUBJECT msg[‘FROM‘]=FROM msg[‘To‘] = TO try: server = smtplib.SMTP() server.connect(HOST,"25") server.starttls() server.login(‘11111111@139.com‘,‘密码‘) server.sendmail(FROM,TO_list,msg.as_string()) server.quit() print "邮件发送成功!" except Exception,e: print "失败:"+ str(e) print type(TO) def main(): Time_Shifting() Login() list_url_186() Get_Image() sendmail() if __name__ == ‘__main__‘: main()
本文出自 “服务器” 博客,请务必保留此出处http://zhangfang2012.blog.51cto.com/6380212/1586624
python登录cacti抓取服务信息图自动发周报
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。