#/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.p_w_picpath 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_p_w_picpath.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_p_w_picpath.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_p_w_picpath.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_p_w_picpath.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="cid:network"></td><td> <img src="cid:load"></td> </tr> <tr bgcolor="#EFEBDE" height="100" style="font-size:13px"> <td> <img src="cid:mem"></td><td> <img src="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()
python登录cacti抓取服务信息图自动发周报
原创
©著作权归作者所有:来自51CTO博客作者zhangfang2012的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
python抓取经纬度信息
爬取城市经纬度信息
ci 结果集 返回结果 -
自动生成周报
使用py,根据日志记录自动生成周报 参考 gitlab https://github.com/leoparddne/WeekReport
自动生成 github 日志记录 git javascript