Python 实现Zabbix自动发送报表(二)

2014-11-23 22:10:06 · 作者: · 浏览: 46
login_url = r"http://%s/index.php"%zabbix_host


save_graph_url = r"http://%s/chart2.php"%zabbix_host


opener.open(login_url,login_opt).read()


data = opener.open(save_graph_url,get_graph_opt).read()


filename = "%s/%s.%s.png"%(save_graph_path,screenid,graphid)


html += ''%(zabbix_host,save_graph_path.split("/")[len(save_graph_path.split("/"))-2],save_graph_path.split("/")[len(save_graph_path.split("/"))-1],screenid,graphid)


f = open(filename,"wb")


f.write(data)


f.close()




def send_mail(username,password,smtp_server,to_list,sub,content):


print to_list


me = "运维"+"<"+username+"@"+domain +">"


msg = MIMEText(content,_subtype="html",_charset="utf8")


msg["Subject"] = sub


msg["From"] = me


msg["To"] = ";".join(to_list)


try:


server = smtplib.SMTP()


server.connect(smtp_server)


server.login(username,password)


server.sendmail(me,to_list,msg.as_string())


server.close()


print "send mail Ok!"


except Exception, e:


print e



if __name__ == '__main__':


for screen in screens:


get_graph(zabbix_host,username,password,screen,width,height,period,save_graph_path)


send_mail(mail_user,mail_pass,smtp_server,to_list,"test email",html)


设置crontab 每天早上上班前执行一次


crontab -e


45 08 * * * python /root/zabbix_send_report.py


上效果图


Python 实现Zabbix自动发送报表