def send_alarm_mail(): sql = "select alarm.application_id,app.display_name application,alarm.server_id,servers.host,servers.port,alarm.create_time,db_type,alarm_type,alarm_value,level,message,alarm.send_mail from alarm left join servers on alarm.server_id=servers.id left join application app on servers.application_id=app.id;" result = func.mysql_query(sql) if result <> 0: send_alarm_mail = func.get_option('send_alarm_mail') mail_to_list = func.get_option('mail_to_list') mailto_list = mail_to_list.split(';') for line in result: application_id = line[0] application = line[1] server_id = [2] host = line[3] port = line[4] create_time = line[5] db_type = line[6] alarm_type = line[7] alarm_value = line[8] level = line[9] message = line[10] send_mail = line[11] if send_alarm_mail == "1": if send_mail == 1: mail_subject = message + ' 当前值:' + alarm_value + ' 服务器:' + application + '-' + host + ':' + port + ' 时间:' + create_time.strftime( '%Y-%m-%d %H:%M:%S') mail_content = "please check!" result = func.send_mail(mailto_list, mail_subject, mail_content) if result: send_mail_status = 1 else: send_mail_status = 0 else: send_mail_status = 0 else: send_mail_status = 0 if send_mail_status == 1: func.mysql_exec( "insert into alarm_history(application_id,server_id,create_time,db_type,alarm_type,alarm_value,level,message,send_mail,send_mail_status) select application_id,server_id,create_time,db_type,alarm_type,alarm_value,level,message,send_mail,1 from alarm;", '') elif send_mail_status == 0: func.mysql_exec( "insert into alarm_history(application_id,server_id,create_time,db_type,alarm_type,alarm_value,level,message,send_mail,send_mail_status) select application_id,server_id,create_time,db_type,alarm_type,alarm_value,level,message,send_mail,0 from alarm;", '') func.mysql_exec("delete from alarm", '') else: pass
def send_alarm_mail(): sql="select alarm.application_id,app.display_name application,alarm.server_id,servers.host,servers.port,alarm.create_time,db_type,alarm_type,alarm_value,level,message,alarm.send_mail from alarm left join servers on alarm.server_id=servers.id left join application app on servers.application_id=app.id;" result=func.mysql_query(sql) if result <> 0: send_alarm_mail = func.get_option('send_alarm_mail') mail_to_list = func.get_option('mail_to_list') mailto_list=mail_to_list.split(';') for line in result: application_id=line[0] application=line[1] server_id=[2] host=line[3] port=line[4] create_time=line[5] db_type=line[6] alarm_type=line[7] alarm_value=line[8] level=line[9] message=line[10] send_mail=line[11] if send_alarm_mail=="1": if send_mail==1: mail_subject=message+' 当前值:'+alarm_value+' 服务器:'+application+'-'+host+':'+port+' 时间:'+create_time.strftime('%Y-%m-%d %H:%M:%S') mail_content="please check!" result = func.send_mail(mailto_list,mail_subject,mail_content) if result: send_mail_status=1 else: send_mail_status=0 else: send_mail_status=0 else: send_mail_status=0 if send_mail_status==1: func.mysql_exec("insert into alarm_history(application_id,server_id,create_time,db_type,alarm_type,alarm_value,level,message,send_mail,send_mail_status) select application_id,server_id,create_time,db_type,alarm_type,alarm_value,level,message,send_mail,1 from alarm;",'') elif send_mail_status==0: func.mysql_exec("insert into alarm_history(application_id,server_id,create_time,db_type,alarm_type,alarm_value,level,message,send_mail,send_mail_status) select application_id,server_id,create_time,db_type,alarm_type,alarm_value,level,message,send_mail,0 from alarm;",'') func.mysql_exec("delete from alarm",'') else: pass
def send_alarm_mail(idc_type='ts'): sql = "select alarm.application_id,app.display_name application,alarm.server_id,servers.host,servers.port,alarm.create_time,db_type,alarm_type,alarm_value,level,message,alarm.send_mail,servers.alarm_time,servers.threshold_starttime,servers.threshold_endtime from alarm left join servers on alarm.server_id=servers.id left join application app on servers.application_id=app.id where servers.idc_type='" + str( idc_type) + "';" result = func.mysql_query(sql) if result <> 0: send_alarm_mail = func.get_option('send_alarm_mail') mail_to_list = func.get_option('mail_to_list') mailto_list = mail_to_list.split(';') global_alarm_type = func.get_config('global_alarm_type', 'alarm_type') global_alarm_type_list = global_alarm_type.split(',') for line in result: application_id = line[0] application = line[1] server_id = line[2] host = line[3] port = line[4] create_time = line[5] db_type = line[6] alarm_type = line[7] alarm_value = line[8] level = line[9] message = line[10] send_mail = line[11] alarm_time = line[12] threshold_starttime = line[13] threshold_endtime = line[14] app_email = func.get_application_alarm_email(str(application_id)) app_email_list = app_email.split(',') for email_app in app_email_list: if email_app not in mailto_list: mailto_list.append(email_app) else: pass if send_alarm_mail == "1": if send_mail == 1: mail_subject = message + ' 当前值:' + alarm_value + ' 服务器:' + application + '-' + host + ':' + port + ' 时间:' + create_time.strftime( '%Y-%m-%d %H:%M:%S') mail_content = "请检查下!" now_hour = ("0" + str(datetime.now().hour) if datetime.now().hour < 10 else str( datetime.now().hour)) + ":" + ( "0" + str(datetime.now().minute) if datetime.now().minute < 10 else str( datetime.now().minute)) if alarm_type not in global_alarm_type_list: if (int(alarm_time) == 1) and ( threshold_starttime.strip() != "") and (threshold_endtime.strip() != "") and ( threshold_endtime > threshold_starttime ) and (now_hour <= threshold_endtime) and ( now_hour >= threshold_starttime): result_mail = func.send_mail( mailto_list, mail_subject, mail_content) elif int(alarm_time) != 1: result_mail = func.send_mail( mailto_list, mail_subject, mail_content) else: result_mail = False else: result_mail = func.send_mail(mailto_list, mail_subject, mail_content) if result_mail: send_mail_status = 1 else: send_mail_status = 0 else: send_mail_status = 0 else: send_mail_status = 0 if send_mail_status == 1: func.mysql_exec( "insert into alarm_history(application_id,server_id,create_time,db_type,alarm_type,alarm_value,level,message,send_mail,send_mail_status,idc_type) select application_id,server_id,create_time,db_type,alarm_type,alarm_value,level,message,send_mail,1,'" + str(idc_type) + "' from alarm;", '') elif send_mail_status == 0: func.mysql_exec( "insert into alarm_history(application_id,server_id,create_time,db_type,alarm_type,alarm_value,level,message,send_mail,send_mail_status,idc_type) select application_id,server_id,create_time,db_type,alarm_type,alarm_value,level,message,send_mail,0,'" + str(idc_type) + "' from alarm;", '') func.mysql_exec( "delete from alarm where idc_type='" + str(idc_type) + "'", '') else: pass
h = (datetime.now() - timedelta(days=1)).strftime('%H') M = (datetime.now() - timedelta(days=1)).strftime('%M') S = (datetime.now() - timedelta(days=1)).strftime('%S') isSendMail = func.get_config('global_value', 'isSendMail') #主题调用函数 result, err_result, total_size_str = check_backup(Y, y, m, d) if len(result) > 1: att_filename = "xls/backuplist_" + str(Y) + "-" + str(m) + "-" + str( d) + "_" + str(h) + str(M) + str(S) + ".xlsx" hdngs = ['服务器IP', '备份昵称', '备份日期', '备份大小', '备份文件名', '备份目录'] exc_ins = Excel.Excel(att_filename, sheet_name='ciSheet', encoding='utf-8') exc_ins.backup_xlsx_write(hdngs, result) if is_auto and isSendMail == 'yes' and len(result) > 1: content = func.toHtml(result, total_size_str) sub = "服务器备份每日统计(" + str(Y) + '-' + str(m) + '-' + str(d) + ")" #func.send_mail(func.mailto_list,sub,content) func.sendMail(sub, content, func.mailto_list, att_filename) else: print json.dumps('suc!') if len(err_result) > 0 and isSendMail == 'yes': err_sub = "备件检查存在错误(" + str(Y) + '-' + str(m) + '-' + str(d) + ")" err_content = func.toErrHtml(err_result) func.send_mail(func.mailto_list, err_sub, err_content)
#!/usr/bin/env python # -*- coding: utf8 -*- from datetime import * import global_functions as func mail_to_list = func.get_option('mail_to_list') mailto_list=mail_to_list.split(';') result = func.send_mail(mailto_list," I hope you can learn","Beautiful Day") print result if result: send_mail_status = "success" else: send_mail_status = "fail" print "send_mail_status:"+send_mail_status
def send_alarm_mail(idc_type='ts'): sql="select alarm.application_id,app.display_name application,alarm.server_id,servers.host,servers.port,alarm.create_time,db_type,alarm_type,alarm_value,level,message,alarm.send_mail,servers.alarm_time,servers.threshold_starttime,servers.threshold_endtime from alarm left join servers on alarm.server_id=servers.id left join application app on servers.application_id=app.id where servers.idc_type='"+str(idc_type)+"';" result=func.mysql_query(sql) if result <> 0: send_alarm_mail = func.get_option('send_alarm_mail') mail_to_list = func.get_option('mail_to_list') mailto_list=mail_to_list.split(';') global_alarm_type=func.get_config('global_alarm_type','alarm_type') global_alarm_type_list=global_alarm_type.split(',') for line in result: application_id=line[0] application=line[1] server_id=line[2] host=line[3] port=line[4] create_time=line[5] db_type=line[6] alarm_type=line[7] alarm_value=line[8] level=line[9] message=line[10] send_mail=line[11] alarm_time=line[12] threshold_starttime=line[13] threshold_endtime=line[14] app_email=func.get_application_alarm_email(str(application_id)) app_email_list=app_email.split(',') for email_app in app_email_list: if email_app not in mailto_list: mailto_list.append(email_app) else: pass if send_alarm_mail=="1": if send_mail==1: mail_subject=message+' 当前值:'+alarm_value+' 服务器:'+application+'-'+host+':'+port+' 时间:'+create_time.strftime('%Y-%m-%d %H:%M:%S') mail_content="请检查下!" now_hour = ("0"+str(datetime.now().hour) if datetime.now().hour<10 else str(datetime.now().hour))+":"+( "0"+str(datetime.now().minute) if datetime.now().minute<10 else str(datetime.now().minute)) if alarm_type not in global_alarm_type_list: if (int(alarm_time) == 1) and (threshold_starttime.strip() != "") and (threshold_endtime.strip() != "") and (threshold_endtime > threshold_starttime) and (now_hour <= threshold_endtime) and (now_hour >= threshold_starttime): result_mail = func.send_mail(mailto_list,mail_subject,mail_content) elif int(alarm_time) != 1: result_mail = func.send_mail(mailto_list,mail_subject,mail_content) else: result_mail = False else: result_mail = func.send_mail(mailto_list,mail_subject,mail_content) if result_mail: send_mail_status=1 else: send_mail_status=0 else: send_mail_status=0 else: send_mail_status=0 if send_mail_status==1: func.mysql_exec("insert into alarm_history(application_id,server_id,create_time,db_type,alarm_type,alarm_value,level,message,send_mail,send_mail_status,idc_type) select application_id,server_id,create_time,db_type,alarm_type,alarm_value,level,message,send_mail,1,'"+str(idc_type)+"' from alarm;",'') elif send_mail_status==0: func.mysql_exec("insert into alarm_history(application_id,server_id,create_time,db_type,alarm_type,alarm_value,level,message,send_mail,send_mail_status,idc_type) select application_id,server_id,create_time,db_type,alarm_type,alarm_value,level,message,send_mail,0,'"+str(idc_type)+"' from alarm;",'') func.mysql_exec("delete from alarm where idc_type='"+str(idc_type)+"'",'') else: pass
#!/usr/bin/env python # -*- coding: utf8 -*- from datetime import * import global_functions as func mail_to_list = func.get_option('mail_to_list') mailto_list = mail_to_list.split(';') result = func.send_mail(mailto_list, " I hope you can learn", "Beautiful Day") print result if result: send_mail_status = "success" else: send_mail_status = "fail" print "send_mail_status:" + send_mail_status