Beispiel #1
0
    def get_load_average(self):
        command = ['sysctl', 'vm.loadavg']
        #pipe.stdout return as byte string
        pipe = subprocess.Popen(command, stdout=subprocess.PIPE)
        #convert byte string to string utf-8
        stringUnicode = pipe.stdout.read().decode(self.encodeType).split(" ")
        a1, a5, a15 = map(float, stringUnicode[2:5])
        '''
            logica do analizador

            a5 >= 50%
        '''
        if a5 >= 0.5:
            list = self.get_process()
            message = "Load Average 1 Minutes: %.2f, 5 Minutes: %.2f 15 Minutes: %.2f" % (a1, a5, a15)
            self.logger.debug(message)
            process_list = self.get_process()
            final_string = ''
            for x in process_list:
                final_string += x.decode(self.encodeType)
            if self.send_mail:
                sender = MailSender(message + "\n================================================\n" + final_string)
                sender.sendmail()
                self.logger.debug("Email send")
        return "%.2f, %.2f, %.2f" % (a1, a5, a15)
Beispiel #2
0
 def get_file_system(self, message="CAPACITY WARNING:"):
     command = ['df', '-h']        
     pipe = subprocess.Popen(command, stdout=subprocess.PIPE)
     #output_lines is a byte list[] 
     output_lines = pipe.stdout.readlines()
     pattern1 = "9[0]%"
     pattern2 = "9[8]%"
     for line in output_lines:
         line = str(line.strip(), self.encodeType)
         if re.search(pattern1, line):
             if not self.flagToSendMail:
                 if self.send_mail:
                     sender = MailSender("%s %s" % (message, line), "CAPACITY WARNING 90%")
                     sender.sendmail()
                     self.flagToSendMail = True
                 self.logger.warning("CAPACITY WARNING 90% %s %s" % (message, line))
         if re.search(pattern2, line):
             if not self.flagToSendMail2:
                 if self.send_mail:
                     sender = MailSender("%s %s" % (message, line), "CAPACITY WARNING 98% Oh My God, hurry up.")
                     sender.sendmail()
                     self.flagToSendMail2 = True
                 self.logger.critical("CAPACITY WARNING 98% Oh My God, hurry up. %s %s" % (message, line))