欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python監控進程狀態,記錄重啟時間及進程號的實例

系統 2100 0

本腳本為本人在性能測試過程中編寫,用于對進程狀態的監控,也可以用于日常的監控,適用性一般,擴展性還行

            
# -*- coding: UTF-8 -*-
# author=baird_xiang
import os
import time
import re
import copy

nginxRestart_num= -1
nginxReload_num= -1
logSender_num= -1
es_num= -1
nginxParent_pid=[]
nginxChild_pid=[]
logSender_pid=[]
es_pid=[]

nginxRestart_time =[]
nginxReload_time=[]
logSender_time=[]
es_time=[]
def get_restart(thread_name):
  global nginxRestart_num,nginxReload_num,logSender_num,es_num
  while True:
    try:
      for i in thread_name:
        if i=='nginx_restart':
          nP_pid = os.popen("sudo pgrep -lo nginx |grep -v grep|awk '{print $1}'").read()
          nP_time = os.popen("sudo ps aux|grep nginx |grep -v grep|awk 'NR==1{print $9}'").read()
          nginx_path = os.popen("sudo ps aux|grep nginx |grep -v grep|awk 'NR==1{print $11}'").read()
          date = time.strftime('%Y-%m-%d',time.localtime(time.time()))
          nP_time_now = date + '-' + nP_time.split('\n')[0] 
          if nP_pid and (nP_pid not in nginxParent_pid) and (nginx_path=='/usr/sbin/nginx\n'):
              nginxParent_pid.append(nP_pid)
              nginxRestart_num=nginxRestart_num+1
          # if nP_time and (nP_time_now not in nginxRestart_time) and (color!='-c\n'):
              nginxRestart_time.append(nP_time_now)    
      
        elif i=='nginx_reload':
          nR_pid = os.popen("sudo pgrep -ln nginx|grep -v grep |awk '{print $1}'").read()
          nR_time = os.popen("sudo ps aux|grep nginx |grep -v grep|awk 'NR==2{print $9}'").read()
          nginx_path = os.popen("sudo ps aux|grep nginx |grep -v grep|awk 'NR==1{print $11}'").read()
          date = time.strftime('%Y-%m-%d',time.localtime(time.time()))
          nR_time_now = date + '-' + nR_time.split('\n')[0]
          if nR_pid and (nR_pid not in nginxChild_pid) and (nginx_path=='/usr/sbin/nginx\n') :
              nginxChild_pid.append(nR_pid)
              nginxReload_num=nginxReload_num+1-nginxRestart_num
          #if nR_time and (nR_time_now not in nginxReload_time) and (color!='-c\n'):
              nginxReload_time.append(nR_time_now)
        
        elif i=='log_sender':
          lS_pid = os.popen("sudo ps aux|grep log_sender |grep -v grep|awk 'NR==1{print $2}'").read()
          lS_time = os.popen("sudo ps aux|grep log_sender |grep -v grep|awk 'NR==1{print $9}'").read()
          color = os.popen("sudo ps aux|grep log_sender |grep -v grep|awk 'NR==1{print $12}'").read()
          wwwdate = os.popen("sudo ps aux|grep log_sender |grep -v grep|awk 'NR==1{print $1}'").read()
          date = time.strftime('%Y-%m-%d',time.localtime(time.time()))
          lS_time_now = date + '-' + lS_time.split('\n')[0]
          if lS_pid and (color!='-c\n') and ( lS_pid not in logSender_pid ) and (wwwdate=='www-data\n'):
              logSender_pid.append(lS_pid)
              logSender_num=logSender_num+1
          #if lS_time and (lS_time_now not in logSender_time) and (color!='-c\n'):
              logSender_time.append(lS_time_now)
        elif (i=='elasticsearch') and (os.popen("sudo ps -ef |grep elasticsearch |grep -v grep|awk 'NR==1{print $2}'").read()):
          time.sleep(1)
          e_pid = os.popen("sudo ps aux|grep elasticsearch |grep -v grep|awk 'NR==1{print $2}'").read()
          e_time = os.popen("sudo ps aux|grep elasticsearch |grep -v grep|awk 'NR==1{print $9}'").read()
          color = os.popen("sudo ps aux|grep elasticsearch |grep -v grep|awk 'NR==1{print $12}'").read()
          elastic = os.popen("sudo ps aux|grep elasticsearch |grep -v grep|awk 'NR==1{print $1}'").read()
          date = time.strftime('%Y-%m-%d',time.localtime(time.time()))  
          e_time_now = date + '-' + e_time.split('\n')[0] 
          if e_pid and (color!='-c\n') and (e_pid not in es_pid) and (elastic =='elastic+\n'):
            es_pid.append(e_pid)
            es_num=es_num+1
         # if e_time and (e_time_now not in es_time) and (color!='-c\n') and (elastic =='elastic+\n'):
            es_time.append(e_time_now)
        else:
          pass
    except (OSError,IOError): #防止進入循環但是這個時候進程重啟,導致popen讀取不到進程信息就會出錯
      pass   
def set_nginxRestart_txt():
  now_path = os.getcwd()
  file_name = now_path + '/nginxRestart_%s.txt'%(nginxRestart_time[-1])
  #寫入文本
  file1 = open(file_name,'w')
  for i in range(1,len(nginxRestart_time)):
    file1.write('重啟時間:'+nginxRestart_time[i]+'重啟前父進程號: '+ nginxParent_pid[i-1]+'重啟后父進程號: ' +nginxParent_pid[i] + '\n')
  
  file1.close()
  file2 = open(file_name,'a+')
  file2.write('nginx restart次數為: ' + str(nginxRestart_num) + '\n')
  file2.close()
def set_nginxReload_txt():
  now_path = os.getcwd()
  file_name = now_path + '/nginxReload_%s.txt'%(nginxReload_time[-1])
  #寫入文本
  file1 = open(file_name,'w')
  for i in range(1,len(nginxReload_time)):
    file1.write('重啟時間:'+nginxReload_time[i] + '\n')
  
  file1.close()
  file2 = open(file_name,'a+')
  file2.write('nginx reload次數為:' + str(nginxReload_num) + '\n')
  file2.close()
def set_logsender_txt():
  now_path = os.getcwd()
  file_name = now_path + '/logsender_restart_%s.txt'%(logSender_time[-1])
  #寫入文本
  file1 = open(file_name,'w')
  for i in range(1,len(logSender_time)):
    file1.write('重啟時間:'+logSender_time[i]+'重啟前進程號: '+ logSender_pid[i-1]+'重啟后進程號: ' + logSender_pid[i] + '\n')
  
  file1.close()
  file2 = open(file_name,'a+')
  file2.write('logsender重啟次數為: '+ str(logSender_num) + '\n')
  file2.close()
def set_es_txt():
  now_path = os.getcwd()
  file_name = now_path + '/esRestart_%s.txt'%(es_time[-1])
  #寫入文本
  file1 = open(file_name,'w')
  for i in range(1,len(es_time)):
    file1.write('重啟時間:'+es_time[i] +'重啟前進程號: ' +es_pid[i-1] +'重啟后進程號: ' + es_pid[i] +'\n')
  
  file1.close()
  file2 = open(file_name,'a+')
  file2.write('elasticsearch重啟次數為: ' + str(es_num) + '\n')
  file2.close()
if __name__ =="__main__":
  thread_name=['nginx_restart','nginx_reload','log_sender','elasticsearch']
  try:
    get_restart(thread_name)
  except (KeyboardInterrupt,SystemExit):
    set_nginxRestart_txt()
    set_nginxReload_txt()
    set_logsender_txt()
    set_es_txt()
          

以上這篇python監控進程狀態,記錄重啟時間及進程號的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 一区二区三区免费在线 | 一级做a爱片久久 | 欧美精品一区二区精品久久 | 免费v片在线观看 | 色在线观看视频 | 欧美特黄a级高清免费大片 精品日本三级在线观看视频 | 亚洲精品一区二区三区四区高清 | 欧美日韩在线国产 | 日韩有码在线观看 | 999精品嫩草久久久久久99 | 午夜伦理在线播放 | 日本福利一区二区 | 国产视频第一页 | 亚洲午夜av | 亚洲性生活免费视频 | 免费黄色电影在线观看 | 国产亚洲精品久久久久久久网站 | 九色九色九色在线综合888 | 水中色av综合 | 午夜影院在线看 | 国产精品久久久久无码人妻精品 | 99伊人 | 成人欧美网站免费 | 欧美特黄a级高清免费看片 欧美精品一二区 | 91专区在线观看 | 国产精品一区二区久久 | 免费性生活视频 | 人人澡人人澡人人澡 | 国产精品毛片久久久久久 | 亚洲一区在线观看视频 | 天堂综合网久久 | 日韩在线网址 | 日本不卡不码高清免费 | 日韩精品在线一区二区 | 亚洲电影免费 | 欧美一级毛片欧美大尺度一级毛片 | 亚洲一区二区综合 | 亚洲精品视频在线 | 99国产精品2018视频全部 | 首页亚洲国产丝袜长腿综合 | 五月天婷婷精品视频 |