Пример #1
0
 def CheckDisk(self,cache,i,email_data,warningUrl,ed):
     hd_data = self.Check_hd_use()
     for keys in hd_data:
         use = int(self.Check_hd_use()[keys])
         c_use = int(i["disk_alarm_value"])
         if use >= c_use:
             disk_data = '  %s  目录已经使用 %.2f%s ' % (keys, float(self.Check_hd_use()[keys]), "%")
             evenmd5 = "diskmsg" + public.Md5(disk_data)
             now = time.time()
             t = now - float(cache["diskmsg"][1])
             push_time = int(i["push_time"]) * 60
             print(use)
             if cache["diskmsg"][0] != evenmd5 and t >= push_time:
                 cache["diskmsg"][0] = evenmd5
                 cache["diskmsg"][1] = now
                 public.WriteLog('消息推送', "磁盘已经使用[  %s  ]超过设定阈值" % disk_data)
                 email_data["type"] = "disk_w"
                 email_data["v1"] = disk_data
                 if self.__send_mail(warningUrl, email_data) == "1":
                     public.WriteLog('消息推送', "磁盘 告警邮件发送成功")
                 self.disk_error_code += 1
                 ed[keys] = self.disk_error_code
                 # 判断告警方式发送消息
         else:
             try:
                 if ed[keys] != 0:
                     ed[keys] = 0
                     cache["diskmsg"][0] = ""
                     email_data["type"] = "disk_s"
                     if self.__send_mail(warningUrl, email_data) == "1":
                         public.WriteLog('消息推送', "磁盘 恢复邮件发送成功")
                     public.WriteLog('消息推送', "磁盘告警状态已经恢复正常")
             except:
                 ed[keys] = 0
Пример #2
0
    def CheckLocalSite(self,cache,i,email_data,warningUrl):
        self.ThreadingCheck(i)
        l = []
        l.append(i["site"]["url_list"])
        if i["site"]["adv"] == "1":
            while len(self.url_dict) !=len(l):
                time.sleep(0.5)
        else:
            while len(self.site_dict) != len(l):
                time.sleep(0.5)

        if self.site_dict:
            a = self.site_dict
        else:
            a = self.url_dict
        for s in a.keys():
            if a[s] != 200 or not a[s]:
                even = "站点 [  %s  ] 监控到访问异常" % s
                evenmd5 = "localsitemsg" + public.Md5(even)
                now = time.time()
                t = now - float(cache["memmsg"][1])
                push_time = int(i["push_time"]) * 60
                if cache["localsitemsg"][0] != evenmd5 and t >= push_time:
                    cache["localsitemsg"][0] = evenmd5
                    cache["localsitemsg"][1] = now
                    public.WriteLog('消息推送', even)
                    self.__SendMail(email_data, even, warningUrl)
                    self.site_error_code += 1
            else:
                if self.site_error_code != 0:
                    self.site_error_code = 0
                    cache["localsitemsg"][0] = ""
                    even = "站点告警状态已经恢复正常 [ %s ]" % s
                    public.WriteLog('消息推送', even)
                    self.__SendMail(email_data, even, warningUrl)
Пример #3
0
 def CheckUrl(self,cache,i,email_data,warningUrl):
     site_url = i["site_check_url"]
     self.check_site_health(i)
     for i in self.url_dict.keys():
         if self.url_dict[i] == False:
             even = "URL[  %s  ]监控异常" % site_url
             evenmd5 = "sitemsg" + public.Md5(even)
             now = time.time()
             t = now - float(cache["memmsg"][1])
             push_time = int(i["push_time"]) * 60
             if cache["sitemsg"][0] != evenmd5 and t >= push_time:
                 cache["sitemsg"][0] = evenmd5
                 cache["sitemsg"][1] = now
                 email_data["type"] = "site_w"
                 email_data["v1"] = site_url
                 public.WriteLog('消息推送', even)
                 self.url_error_code += 1
                 # 判断告警方式发送消息
                 if self.__send_mail(warningUrl, email_data) == "1":
                     public.WriteLog('消息推送', "URL 告警邮件发送成功")
         else:
             if self.url_error_code != 0:
                 self.url_error_code = 0
                 cache["sitemsg"][0] = ""
                 public.WriteLog('消息推送', "URL告警状态已经恢复正常 [ %s ]" % site_url)
                 email_data["type"] = "site_s"
                 if self.__send_mail(warningUrl, email_data) == "1":
                     public.WriteLog('消息推送', "URL 恢复邮件发送成功")
Пример #4
0
 def CheckMem(self,cache,i,email_data,warningUrl):
     starttime = time.time() - int(i["mem_check_time"]) * 60
     mem_data = self.GetCpuIo(starttime)
     memsum = 0
     for mem in mem_data:
         memsum += int(mem["mem"])
     mem_avg = memsum / len(mem_data)
     if int(i["mem_alarm_value"]) <= mem_avg:
         evenmd5 = "memmsg" + public.Md5(str(mem_avg))
         now = time.time()
         t = now - float(cache["memmsg"][1])
         push_time = int(i["push_time"]) * 60
         if cache["memmsg"][0] != evenmd5 and t >= push_time:
             mxp = self.ThreadingGetProcessMemPercent()
             even = "内存已经使用[  %d%s  ]超过设定阈值,其中【%s】进程占用内存最高,占用率为 %sMB" % (mem_avg, "%", mxp[0],mxp[1])
             cache["memmsg"][0] = evenmd5
             cache["memmsg"][1] = now
             public.WriteLog('消息推送', even)
             self.__SendMail(email_data, even, warningUrl)
             self.mem_error_code += 1
             # 判断告警方式发送消息
     else:
         if self.mem_error_code != 0:
             self.mem_error_code = 0
             cache["memmsg"][0] = ""
             even = "内存告警状态已经恢复正常"
             self.__SendMail(email_data, even, warningUrl)
             public.WriteLog('消息推送', even)
Пример #5
0
 def CheckDisk(self,cache,i,email_data,warningUrl):
     hd_data = self.Check_hd_use()
     inode_data = self.CheckInodeUse()
     for keys in hd_data:
         use = int(hd_data[keys])
         inode_use = int(inode_data[keys])
         c_use = int(i["disk_alarm_value"])
         if use >= c_use or inode_use >= c_use:
             evenmd5 = "diskmsg" + public.Md5(str(use))
             now = time.time()
             t = now - float(cache["diskmsg"][1])
             push_time = int(i["push_time"]) * 60
             if cache["diskmsg"][0] != evenmd5 and t >= push_time:
                 disk_data = '  %s  目录已经使用 %s%s 空间,inode 已经使用 %s%s' % (keys, use, "%",inode_use,"%")
                 cache["diskmsg"][0] = evenmd5
                 cache["diskmsg"][1] = now
                 even = "磁盘已经使用[  %s  ]超过设定阈值" % disk_data
                 public.WriteLog('消息推送', even)
                 self.__SendMail(email_data, even, warningUrl)
                 self.disk_error_code += 1
                 self.ed[keys] = self.disk_error_code
                 # 判断告警方式发送消息
         else:
             try:
                 if self.ed[keys] != 0:
                     self.ed[keys] = 0
                     cache["diskmsg"][0] = ""
                     even = "磁盘告警状态已经恢复正常"
                     self.__SendMail(email_data, even, warningUrl)
                     public.WriteLog('消息推送', even)
             except:
                 self.ed[keys] = 0
Пример #6
0
 def CheckMem(self,cache,i,email_data,warningUrl):
     starttime = time.time() - int(i["mem_check_time"]) * 60
     mem_data = self.GetCpuIo(starttime)
     memsum = 0
     for mem in mem_data:
         memsum += int(mem["mem"])
     mem_avg = memsum / len(mem_data)
     if int(i["mem_alarm_value"]) <= mem_avg:
         even = "内存已经使用[  %d%s  ]超过设定阈值" % (mem_avg, "%")
         evenmd5 = "memmsg" + public.Md5(even)
         now = time.time()
         t = now - float(cache["memmsg"][1])
         push_time = int(i["push_time"]) * 60
         if cache["memmsg"][0] != evenmd5 and t >= push_time:
             cache["memmsg"][0] = evenmd5
             cache["memmsg"][1] = now
             email_data["type"] = "mem_w"
             email_data["v1"] = str(mem_avg) + "%"
             public.WriteLog('消息推送', even)
             self.mem_error_code += 1
             if self.__send_mail(warningUrl, email_data) == "1":
                 public.WriteLog('消息推送', "内存 告警邮件发送成功")
             # 判断告警方式发送消息
     else:
         if self.mem_error_code != 0:
             self.mem_error_code = 0
             cache["memmsg"][0] = ""
             email_data["type"] = "mem_s"
             if self.__send_mail(warningUrl, email_data) == "1":
                 public.WriteLog('消息推送', "内存 恢复邮件发送成功")
             public.WriteLog('消息推送', "内存告警状态已经恢复正常")
Пример #7
0
 def CheckCPU(self,cache,i,email_data,warningUrl):
     # 检查cpu负载
     starttime = time.time() - int(i["cpu_check_time"]) * 60
     cpu_data = self.GetCpuIo(starttime)
     cpusum = 0
     for cpuio in cpu_data:
         cpusum += int(cpuio["pro"])
     cpu_avg = cpusum / len(cpu_data)
     if int(i["cpu_alarm_value"]) <= cpu_avg:
         even = "CPU已经使用[  %.2f  ]超过设定阈值" % cpu_avg
         evenmd5 = "cpumsg" + public.Md5(even)
         now = time.time()
         t = now - float(cache["cpumsg"][1])
         push_time = int(i["push_time"])*60
         if cache["cpumsg"][0] != evenmd5 and t >= push_time:
             cache["cpumsg"][1] = now
             cache["cpumsg"][0] = evenmd5
             public.WriteLog('消息推送', even)
             # 判断告警方式发送消息
             email_data["type"] = "cpu_w"
             email_data["v1"] = " %.2f%s " % (cpu_avg, "%")
             self.cpu_error_code += 1
             if self.__send_mail(warningUrl, email_data) == "1":
                 public.WriteLog('消息推送', "cpu 告警邮件发送成功")
     else:
         if self.cpu_error_code != 0:
             self.cpu_error_code = 0
             cache["cpumsg"][0] = ""
             email_data["type"] = "cpu_s"
             public.WriteLog('消息推送', "cpu 告警状态已经恢复正常")
             if self.__send_mail(warningUrl, email_data) == "1":
                 public.WriteLog('消息推送', "cpu 恢复邮件发送成功")
Пример #8
0
 def get_headers(self, url, parameter=''):
     APIREQUESTDATE = self.APIREQUESTDATE
     APIHMAC = public.Md5(self.key + url + parameter + APIREQUESTDATE + self.secret)
     headers = {
         "API-KEY": self.key,
         "API-REQUEST-DATE": APIREQUESTDATE,
         "API-HMAC": APIHMAC,
         "API-FORMAT": "json"
     }
     return headers
Пример #9
0
 def SetToken(self, email_data):
     ufile = "/www/server/panel/data/userInfo.json"
     uconf = public.readFile(ufile)
     if uconf:
         uconf = json.loads(uconf)
         sk = uconf["secret_key"]
     else:
         return False
     token = public.Md5(sk + email_data)
     return token
Пример #10
0
 def GetTmpFile(self,get):
     self.CleanOldTmpFile()
     save_path = '/www/server/panel/temp'
     if not os.path.exists(save_path): os.makedirs(save_path)
     src_path = get.path
     get.path = os.path.join(save_path,public.Md5(get.path) + '.tmp')
     if not os.path.exists(get.path): return public.returnMsg(False,'没有可用的草稿!')
     data = self.GetFileInfo(get.path)
     data['file'] = src_path
     if 'rebody' in get: data['body'] = public.readFile(get.path)
     return data
Пример #11
0
 def CheckCPU(self, cache, i, email_data, warningUrl):
     # 检查cpu负载
     starttime = time.time() - int(i["cpu_check_time"]) * 60
     cpu_data = self.GetCpuIo(starttime)
     cpusum = 0
     for cpuio in cpu_data:
         cpusum += int(cpuio["pro"])
     cpu_avg = cpusum / len(cpu_data)
     if int(i["cpu_alarm_value"]) <= cpu_avg:
         evenmd5 = "cpumsg" + public.Md5(str(cpu_avg))
         now = time.time()
         t = now - float(cache["cpumsg"][1])
         push_time = int(i["push_time"]) * 60
         if cache["cpumsg"][0] != evenmd5 and t >= push_time:
             mxp = self.ThreadingGetProcessCpuPercent()
             cache["cpumsg"][1] = now
             cache["cpumsg"][0] = evenmd5
             even = "CPU已经使用[  %.2f%s  ]超过设定阈值,其中【%s】进程占用cpu最高,占用率为 %.2f%s" % (
                 cpu_avg, "%", mxp[0], float(mxp[1]) / int(self.cpunum),
                 "%")
             public.WriteLog('消息推送', even)
             # 判断告警方式发送消息
             self.__SendMail(email_data, even, warningUrl)
             # email_data["title"] = even
             # email_data["body"] = even
             # email_data = base64.b64encode(json.dumps(email_data))
             # data = {"access_key": self.GetAccessKey(), "data": email_data, "token": self.SetToken(email_data)}
             # res = self.__send_mail(warningUrl, data)
             # if res == "1":
             #     public.WriteLog('消息推送', "cpu 告警邮件发送成功")
             self.cpu_error_code += 1
             # if self.__send_mail(warningUrl, email_data) == "1":
             #     public.WriteLog('消息推送', "cpu 告警邮件发送成功")
     else:
         if self.cpu_error_code != 0:
             self.cpu_error_code = 0
             cache["cpumsg"][0] = ""
             even = "cpu 告警状态已经恢复正常"
             public.WriteLog('消息推送', even)
             self.__SendMail(email_data, even, warningUrl)
Пример #12
0
 def CheckUrl(self,cache,i,email_data,warningUrl):
     site_url = i["site_check_url"]
     self.check_site_health(i)
     for u in self.url_dict:
         if not self.url_dict[u]:
             even = "URL [  %s  ] 监控到访问异常" % site_url
             evenmd5 = "sitemsg" + public.Md5(even)
             now = time.time()
             t = now - float(cache["memmsg"][1])
             push_time = int(i["push_time"]) * 60
             if cache["sitemsg"][0] != evenmd5 and t >= push_time:
                 cache["sitemsg"][0] = evenmd5
                 cache["sitemsg"][1] = now
                 public.WriteLog('消息推送', even)
                 self.__SendMail(email_data, even, warningUrl)
                 self.url_error_code += 1
         else:
             if self.url_error_code != 0:
                 self.url_error_code = 0
                 cache["sitemsg"][0] = ""
                 even = "URL告警状态已经恢复正常 [ %s ]" % site_url
                 public.WriteLog('消息推送', even)
                 self.__SendMail(email_data, even, warningUrl)
Пример #13
0
app.config['SESSION_KEY_PREFIX'] = 'BT_:'
app.config['SESSION_COOKIE_NAME'] = "BT_PANEL_6"
app.config['PERMANENT_SESSION_LIFETIME'] = 86400 * 7
Session(app)

if s_sqlite: sdb.create_all()

from datetime import datetime
import socket

comm = common.panelAdmin()
method_all = ['GET', 'POST']
method_get = ['GET']
method_post = ['POST']
json_header = {'Content-Type': 'application/json; charset=utf-8'}
cache.set('p_token', 'bmac_' + public.Md5(public.get_mac_address()))
admin_path_file = 'data/admin_path.pl'
admin_path = '/'
if os.path.exists(admin_path_file):
    admin_path = public.readFile(admin_path_file).strip()
admin_path_checks = [
    '/', '/close', '/task', '/login', '/config', '/site', '/sites', 'ftp',
    '/public', '/database', '/data', '/download_file', '/control', '/crontab',
    '/firewall', '/files', 'config', '/soft', '/ajax', '/system',
    '/panel_data', '/code', '/ssl', '/plugin', '/wxapp', '/hook', '/safe',
    '/yield', '/downloadApi', '/pluginApi', '/auth', '/download', '/cloud',
    '/webssh', '/connect_event', '/panel'
]
if admin_path in admin_path_checks: admin_path = '/bt'

Пример #14
0
 def SaveTmpFile(self, get):
     save_path = '/www/server/panel/temp'
     if not os.path.exists(save_path): os.makedirs(save_path)
     get.path = os.path.join(save_path, public.Md5(get.path) + '.tmp')
     public.writeFile(get.path, get.body)
     return public.returnMsg(True, '已保存')
Пример #15
0
    def CheckNet(self, cache, i, email_data, warningUrl):
        import psutil
        ct = int(i["net_check_time"])
        nb = int(i["net_bandwidth"])
        nv = int(i["net_alarm_value"])
        push_time = int(i["push_time"])
        cache_t = float(cache["netmsg"][1])
        if "netcard" not in i.keys():
            i["netcard"] = "lo"
        # net_tmp = public.ExecShell("grep '%s' /proc/net/dev|awk '{print $2,$10}'" % i["netcard"])
        net_tmp = psutil.net_io_counters(pernic=True)

        r_tmp = net_tmp[i["netcard"]].bytes_recv
        t_tmp = net_tmp[i["netcard"]].bytes_sent
        # r_list = []
        # t_list = []
        # r_tmp_list = []
        # t_tmp_list = []
        if len(self.r_tmp_list) < 2:
            self.r_tmp_list.append(r_tmp)
        else:
            self.r_tmp_list.pop(0)
            self.r_tmp_list.append(r_tmp)
        if len(self.t_tmp_list) < 2:
            self.t_tmp_list.append(t_tmp)
        else:
            self.t_tmp_list.pop(0)
            self.t_tmp_list.append(t_tmp)

        r = int(self.r_tmp_list[-1]) - int(self.r_tmp_list[-2])
        t = int(self.t_tmp_list[-1]) - int(self.t_tmp_list[-2])
        if len(self.r_list) > ct:
            self.r_list.pop(0)
        if len(self.t_list) > ct:
            self.t_list.pop(0)
        self.r_list.append(r)
        self.t_list.append(t)
        rsum = 0
        tsum = 0

        for i in self.r_list:
            rsum += i
        for i in self.t_list:
            tsum += i
        rsum = rsum/1024/ct
        tsum = tsum/1024/ct
        print(rsum,tsum)
        net_bandwidth = nb*1024*nv/ 100
        if rsum >= net_bandwidth and tsum >= net_bandwidth:
            d = "上行带宽 %.2fKB 下行带宽 %.2fKB" % (tsum, rsum)
            even = "带宽已经使用[ %s ]超过设定阈值" % d
            evenmd5 = "netmsg" + public.Md5(even)
            now = time.time()
            print(push_time, cache_t)
            t = now - cache_t
            push_time = push_time*60
            print(t,push_time,evenmd5)
            if cache["netmsg"][0] != evenmd5 and t >=push_time:
                cache["netmsg"][0] = evenmd5
                cache["netmsg"][1] = now
                email_data["type"] = "network_w"
                email_data["v1"] = d
                public.WriteLog('消息推送', even)
                self.net_error_code += 1
                if self.__send_mail(warningUrl, email_data) == "1":
                    public.WriteLog('消息推送', "带宽告警邮件发送成功")
                # 判断告警方式发送消息
        else:
            if self.net_error_code != 0:
                self.net_error_code = 0
                cache["netmsg"][0] = ""
                email_data["type"] = "network_s"
                if self.__send_mail(warningUrl, email_data) == "1":
                    public.WriteLog('消息推送', "带宽 恢复邮件发送成功")
                public.WriteLog('消息推送', "带宽告警状态已经恢复正常")
Пример #16
0
 def reload_session(self):
     userInfo = public.M('users').where(
         "id=?", (1, )).field('username,password').find()
     token = public.Md5(userInfo['username'] + '/' + userInfo['password'])
     public.writeFile('/www/server/panel/data/login_token.pl', token)
     session['login_token'] = token
Пример #17
0
    def CheckNet(self, cache, i, email_data, warningUrl):
        import psutil
        ct = int(i["net_check_time"])
        nb = int(i["net_bandwidth"])
        nv = int(i["net_alarm_value"])
        push_time = int(i["push_time"])
        cache_t = float(cache["netmsg"][1])
        if "netcard" not in i.keys():
            i["netcard"] = "lo"
        net_tmp = psutil.net_io_counters(pernic=True)

        r_tmp = net_tmp[i["netcard"]].bytes_recv
        t_tmp = net_tmp[i["netcard"]].bytes_sent

        if len(self.r_tmp_list) < 2:
            self.r_tmp_list.append(r_tmp)
        else:
            self.r_tmp_list.pop(0)
            self.r_tmp_list.append(r_tmp)
        if len(self.t_tmp_list) < 2:
            self.t_tmp_list.append(t_tmp)
        else:
            self.t_tmp_list.pop(0)
            self.t_tmp_list.append(t_tmp)

        r = int(self.r_tmp_list[-1]) - int(self.r_tmp_list[-2])
        t = int(self.t_tmp_list[-1]) - int(self.t_tmp_list[-2])
        if len(self.r_list) > ct:
            self.r_list.pop(0)
        if len(self.t_list) > ct:
            self.t_list.pop(0)
        self.r_list.append(r)
        self.t_list.append(t)
        rsum = 0
        tsum = 0

        for i in self.r_list:
            rsum += i
        for i in self.t_list:
            tsum += i
        rsum = rsum/1024/ct
        tsum = tsum/1024/ct
        net_bandwidth = nb*1024*nv/ 100
        if rsum >= net_bandwidth and tsum >= net_bandwidth:
            d = "上行带宽 %.2fKB 下行带宽 %.2fKB" % (tsum, rsum)
            even = "带宽已经使用[ %s ]超过设定阈值" % d
            evenmd5 = "netmsg" + public.Md5(even)
            now = time.time()
            t = now - cache_t
            push_time = push_time*60
            if cache["netmsg"][0] != evenmd5 and t >=push_time:
                cache["netmsg"][0] = evenmd5
                cache["netmsg"][1] = now
                public.WriteLog('消息推送', even)
                self.__SendMail(email_data, even, warningUrl)
                self.net_error_code += 1
        else:
            if self.net_error_code != 0:
                self.net_error_code = 0
                cache["netmsg"][0] = ""
                even = "带宽告警状态已经恢复正常"
                self.__SendMail(email_data, even, warningUrl)
                public.WriteLog('消息推送', "带宽告警状态已经恢复正常")
Пример #18
0
 def CheckMysql(self,cache,email_data,warningUrl,i):
     import panelMysql as pm
     f = "%s/plugin/masterslave/data.json" % self.setpath
     conf = public.readFile(f)
     if os.path.exists(f) and conf != "":
         conf = json.loads(conf)
         try:
             now = time.time()
             t = now - float(cache["memmsg"][1])
             push_time = int(i["push_time"]) * 60
             if "master_ip" in conf.keys():
                 slavestatus = pm.panelMysql().query("show slave status")[0]
                 Slave_IO_Running = slavestatus[10]
                 Slave_SQL_Running = slavestatus[11]
                 if Slave_IO_Running != "Yes" or Slave_SQL_Running != "Yes":
                     even = "mysql主从异常"
                     evenmd5 = "mysqlmsg" + public.Md5(even)
                     if cache["mysqlmsg"][0] != evenmd5 and t >= push_time:
                         cache["mysqlmsg"][0] = evenmd5
                         cache["mysqlmsg"][1] = now
                         self.__SendMail(email_data, even, warningUrl)
                         self.mysql_error_code += 1
                         public.WriteLog('消息推送', "Mysql主从异常")
                 else:
                     if self.mysql_error_code != 0:
                         self.mysql_error_code = 0
                         cache["mysqlmsg"][0] = ""
                         even = "Mysql主从异常恢复"
                         public.WriteLog('消息推送', even)
                         self.__SendMail(email_data, even, warningUrl)
             else:
                 if not self.CheckPort(conf["slave_ip"], conf["slave_port"]):
                     even = '无法访问从服务器<br>请确认安全组是否已经放行<br>Mysql端口:%s' % conf["slave_ip"]
                     evenmd5 = "mysqlmsg" + public.Md5(even)
                     if cache["mysqlmsg"][0] != evenmd5 and t >= push_time:
                         cache["mysqlmsg"][0] = evenmd5
                         cache["mysqlmsg"][1] = now
                         self.mysql_error_code += 1
                         public.WriteLog('消息推送', even)
                         self.__SendMail(email_data, even, warningUrl)
                         return
                 slavestatus = public.ExecShell(
                     "mysql -h%s -P%s --connect_timeout=3 -u%s -p%s -e 'show slave status\G'" % (
                         conf["slave_ip"], conf["slave_port"], "user" + conf["slave_user"],
                         "pass" + conf["slave_pass"]))[0]
                 Slave_IO_Running = "Slave_IO_Running:\s+(\w+)"
                 Slave_SQL_Running = "Slave_SQL_Running:\s+(\w+)"
                 Slave_IO_Running = re.search(Slave_IO_Running, slavestatus).group(1)
                 Slave_SQL_Running = re.search(Slave_SQL_Running, slavestatus).group(1)
                 if Slave_IO_Running != "Yes" or Slave_SQL_Running != "Yes":
                     even = "mysql主从异常"
                     evenmd5 = "mysqlmsg" + public.Md5(even)
                     if cache["mysqlmsg"][0] != evenmd5 and t >= push_time:
                         cache["mysqlmsg"][0] = evenmd5
                         cache["mysqlmsg"][1] = now
                         self.__SendMail(email_data, even, warningUrl)
                     public.WriteLog('消息推送', "Mysql主从异常!!")
                 else:
                     if self.mysql_error_code != 0:
                         self.mysql_error_code = 0
                         cache["mysqlmsg"][0] = ""
                         even = "Mysql主从异常恢复"
                         public.WriteLog('消息推送', even)
                         self.__SendMail(email_data, even, warningUrl)
         except:
             public.WriteLog('消息推送', "error: " + public.get_error_info())
     else:
         if self.mysql_error_code < 1:
             self.mysql_error_code += 1
             public.WriteLog('消息推送', "主从没有配置")
Пример #19
0
 def reload_session(self):
     userInfo = public.M('users').where("username=?",
                                        (session['username'], )).find()
     token = public.Md5(userInfo['username'] + '/' + userInfo['password'])
     public.writeFile('data/login_token.pl', token)
     session['login_token'] = token