<em id="pn7p8"><acronym id="pn7p8"><u id="pn7p8"></u></acronym></em>

    <th id="pn7p8"></th>

    <button id="pn7p8"></button>

      <dd id="pn7p8"></dd>
      <progress id="pn7p8"><track id="pn7p8"></track></progress>

      Linux培訓
      達內IT學院

      400-111-8989

      Python發音版日志監控

      • 發布:Linux培訓
      • 來源:網絡
      • 時間:2015-07-09 10:49

      前段時間有朋友讓幫忙做一個日志監控的腳本,要求如下:

      1.windows環境

      2.當匹配日志關鍵字時會發出聲音,匹配的關鍵字不同,播放的聲音不同

      3.能做到實時響應

      于是從網上找了個windows版的tail,使用python簡單寫了個小腳本,代碼如下:

      #!/usr/bin/env python
      # encoding: utf-8
      
      """
      MonitorLog.py
      
      Usage: MonitorLog.py ...
      Monitor the log file
      
      -f  log file
      -h  help info
      
      python MonitorLog.py -f C:\monitor.log
      
      Created by zhoubo on 2011-08-29.
      """
      
      import sys
      import os
      import getopt
      import subprocess
      import time
      import codecs
      import winsound
      
      ABSPATH = os.path.dirname(os.path.abspath(__file__))
      MONITERCONF = 'moniter_keyword.txt' #utf8 file
      
      def main():
          try:
              opts, args = getopt.getopt(sys.argv[1:], 'hf:')
          except getopt.GetoptError, err:
              print str(err)
              print __doc__
              return 1
          
          path = ''
          for k, v in opts:
              if k == '-f':
                  path = v
              elif k == '-h':
                  print __doc__
                  return 0
      
          if not (path and os.path.exists(path)):
              print 'Invalid path: %s' % path 
              print __doc__
              return 2
          
          #命令行元組
          cmd = ('tail', '-f', path)
          print ' '.join(cmd)
          output = subprocess.Popen(cmd, stdout=subprocess.PIPE)
          
          keywordMap = {}
          #加載監控的關鍵字信息
          with codecs.open(os.path.join(ABSPATH, MONITERCONF), 'r', 'utf8') as f:
              lines = f.readlines()
          for line in lines:
              line = line.strip()
              if not line:
                  continue
              keyword, wav = line.strip().split(':')
              keywordMap[keyword] = wav
          
          while True:
              line = output.stdout.readline()
              #process code,得到輸出信息后的處理代碼
              if not line:
                  time.sleep(0.01)
                  continue
              line = line.strip().decode('utf8')
              print line
              for keyword in keywordMap:
                  if line.find(keyword) > -1:
                      winsound.PlaySound(keywordMap[keyword], 
                                         winsound.SND_NODEFAULT)
              #time.sleep(0.01)
          return 0
      
      if __name__ == '__main__':
          sys.exit(main())

      預約申請免費試聽課

      填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

      上一篇:python中的strip、lstrip、rstrip
      下一篇:Python正則表達式

      關于 python 中的 setup.py

      Python 程序員的 10 個常見錯誤

      使用 Python 創建你自己的 Shell (上)

      2015年出現的十大流行 Python 庫

      • 掃碼領取資料

        回復關鍵字:視頻資料

        免費領取 達內課程視頻學習資料

      • 視頻學習QQ群

        添加QQ群:1143617948

        免費領取達內課程視頻學習資料

      Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

      選擇城市和中心
      黑龍江省

      吉林省

      河北省

      湖南省

      貴州省

      云南省

      廣西省

      海南省

      高清特黄a大片,日本真人真做爰,特级做人爱C级,免费a级毛片 百度 好搜 搜狗
      <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>