|
#/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,标签src用到
return msgImage #返回msgImage对象
def sendmail():
msg = MIMEMultipart('related') #创建MIMEMultipart对象,采用related定义内嵌资源的邮件体
msgtext = MIMEText("""
以下是ip地址系统状态图
""","html","utf-8") #标签的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()
|
|
|