python写个进程监控的脚本,python监控脚本,NoneSendMail


None
SendMail.py  #!/usr/bin/env python  #coding:utf-8  import string,time  import smtplib  from email.mime.text import MIMEText  from email.header import Header  from class_config import Mail_conf  '''''发送邮件类'''  def send_mail(Title,context):              msg = MIMEText(context,'plain','utf-8')      msg['Subject'] = Header(Title,'utf-8')      try:          smtp = smtplib.SMTP()            smtp.connect(Mail_conf.host,Mail_conf.port)            smtp.login(Mail_conf.user, Mail_conf.passwd)            smtp.sendmail(Mail_conf.sender, Mail_conf.receiver, msg.as_string())            smtp.quit()      except Exception,e:          Writelog = open(Mail_conf.log_dir,'ab')          log = '%s-->%s\n' % (time.strftime('%Y-%m-%d %H:%M:%S'),str(e))          print log          Writelog.write(log)          Writelog.close()  if __name__ == "__main__":      send_mail("Test Mail","这是一封测试邮件,更改邮箱配置在class_config.py中配置")  
    ProcessMoniter.py      #!/usr/bin/env python      #coding:utf-8      import psutil,time      import subprocess      from class_config import ProgramPath      def monitor():           Time = time.time()           log = open(ProgramPath.Restart_Log_path,'ab+')           log.write('****************%s****************\n' % time.strftime('%Y-%m-%d %H:%M:%S'))           log.close()           while True:               ProcessName = ProgramPath.Path.keys()               Process = psutil.process_iter()               for i in Process:                   try:                       if i.name() in ProcessName:                           ProcessName.remove(i.name())                   except Exception,e:                       pass               for i in ProcessName:                   try:                       Restart = subprocess.Popen(ProgramPath.Path[i],shell=False)                   except Exception,e:                       err_log = '%s-->%s\n' % (time.strftime('%Y-%m-%d %H:%M:%S'),str(e).strip())                                   log = open(ProgramPath.Restart_Log_path,'ab+')                       log.seek(-(len(str(e))),2)                       if log.readline().strip() == str(e).strip():                           if Time + 60 > time.time():                               pass                           else:                               log.seek(0,2)                               log.write(err_log)                               log.close()                               Time = time.time()                       else:                           log.seek(0,2)                           log.write(err_log)                           log.close()                           Time = time.time()               time.sleep(2)      if __name__ == "__main__":          monitor()   
    Net_io.py      #!/usr/bin/env python      #coding:utf-8      import psutil      import time      import sys      from optparse import OptionParser      parser = OptionParser()        parser.add_option("-t", "--time", dest="time",                        help="此参数可查看当前下载占的带宽,-t是测试时间", metavar="10")        def Net_io(s):          x = 0          sum = 0          while True:              if x >= s:                  break              r1 = psutil.net_io_counters().bytes_recv              time.sleep(1)              r2 = psutil.net_io_counters().bytes_recv              y = r2 - r1              print "%.2f Kb/s" % (y / 1024.0)              sum += y              x += 1          result = sum / x          print "\033[1;32m %s秒内平均速度:%.2f Kb/s \033[1;m"  % (x,result / 1024.0)      if __name__ == "__main__":          (options, args) = parser.parse_args()            if options.time:              Net_io(options.time)          else:              Net_io(10)  
    sysinfo.py      #!/usr/bin/env python      #coding:utf-8      import psutil      import time      import sys      def Sysinfo():          Boot_Start = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(psutil.boot_time()))            time.sleep(0.5)          Cpu_usage = psutil.cpu_percent()          RAM = int(psutil.virtual_memory().total/(1027*1024))          RAM_percent = psutil.virtual_memory().percent          Swap = int(psutil.swap_memory().total/(1027*1024))          Swap_percent = psutil.swap_memory().percent          Net_sent = psutil.net_io_counters().bytes_sent          Net_recv = psutil.net_io_counters().bytes_recv          Net_spkg = psutil.net_io_counters().packets_sent          Net_rpkg = psutil.net_io_counters().packets_recv          if __name__ == "__main__":              BFH = r'%'              print " \033[1;32m开机时间:%s\033[1;m"  % Boot_Start              print " \033[1;32m当前CPU使用率:%s%s\033[1;m" % (Cpu_usage,BFH)              print " \033[1;32m物理内存:%dM\t使用率:%s%s\033[1;m" % (RAM,RAM_percent,BFH)              print "\033[1;32mSwap内存:%dM\t使用率:%s%s\033[1;m" % (Swap,Swap_percent,BFH)              print " \033[1;32m发送:%d Byte\t发送包数:%d个\033[1;m" % (Net_sent,Net_spkg)              print " \033[1;32m接收:%d Byte\t接收包数:%d个\033[1;m" % (Net_recv,Net_rpkg)              for i in psutil.disk_partitions():                  print " \033[1;32m盘符: %s 挂载点: %s 使用率: %s%s\033[1;m" % (i[0],i[1],psutil.disk_usage(i[1])[3],BFH)          else:              File = open("sysinfo.log","ab+")              File.write("CPU:%s   \tRAM:%s\tNet_recv:%d\tNet_sent:%d\r\n" % (Cpu_usage,RAM_percent,Net_recv,Net_sent))              File.flush()              File.close()      if __name__ == "__main__":          Sysinfo()  

评论关闭