亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python實現(xiàn)實時監(jiān)控文件的方法

系統(tǒng) 1749 0

在業(yè)務(wù)穩(wěn)定性要求比較高的情況下,運維為能及時發(fā)現(xiàn)問題,有時需要對應(yīng)用程序的日志進(jìn)行實時分析,當(dāng)符合某個條件時就立刻報警,而不是被動等待出問題后去解決,比如要監(jiān)控nginx的$request_time和$upstream_response_time時間,分析出最耗時的請求,然后去改進(jìn)代碼,這時就要對日志進(jìn)行實時分析了,發(fā)現(xiàn)時間長的語句就要報警出來,提醒開發(fā)人員要關(guān)注,當(dāng)然這是其中一個應(yīng)用場景,通過這種監(jiān)控方式還可以應(yīng)用到任何需要判斷或分析文件的地方,所以今天我們就來看看如何用python實現(xiàn)實時監(jiān)控文件,我給三個方法實例::

第一種:

這個是最簡單的和容易理解的,因為大家都知道linux下有tail命令,所以你可以直接用Popen()函數(shù)去調(diào)用這個命令來執(zhí)行獲取輸出,代碼如下:

            
logfile='access.log'
command='tail -f ‘+logfile+'|grep “timeout”‘
popen=subprocess.Popen(command,stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)
while True:
line=popen.stdout.readline().strip()
print line


          

第二種:

采用python對文件的操作來實現(xiàn),用文件對象的tell(), seek()方法分別得到當(dāng)前文件位置和要移動到的位置,代碼如下:

            
import time
file = open(‘a(chǎn)ccess.log')
while 1:
where = file.tell()
line = file.readline()
if not line:
time.sleep(1)
file.seek(where)
else:
print line,


          

第三種:

利用python的 yield來實現(xiàn)一個生成器函數(shù),然后調(diào)用這個生成器函數(shù),這樣當(dāng)日志文件有變化時就打印新的行,代碼如下:

            
import time
def follow(thefile):
thefile.seek(0,2)
while True:
line = thefile.readline()
if not line:
time.sleep(0.1)
continue
yield line
if __name__ == ‘__main__':
logfile = open(“access-log”,”r”)
loglines = follow(logfile)
for line in loglines:
print line,


          

最后解釋下seek()函數(shù)的用法,這個函數(shù)接收2個參數(shù):file.seek(off, whence=0),從文件中移動off個操作標(biāo)記(文件指針),正數(shù)往結(jié)束方向移動,負(fù)數(shù)往開始方向移動。如果設(shè)定了whence參數(shù),就以whence設(shè)定的起始位為準(zhǔn),0代表從頭開始,1代表當(dāng)前位置,2代表文件最末尾位置。

以上就是三個常用方法,具體日志分析的代碼大家可以根據(jù)自己的業(yè)務(wù)邏輯去實現(xiàn),完畢。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲se主站| 国产福利观看 | 天天搞天天操 | 四虎影视在线影院在线观看观看 | 国产一区免费在线观看 | 老司机观看精品一区二区 | 九九久久九九久久 | 国产毛片a级 | 豆国产96在线 | 亚洲 | 在线观看免费毛片 | 国产乳摇福利视频在线观看 | 亚洲123区 | 亚洲欧美另类日韩 | 特级毛片在线观看 | 日韩一级黄色录像 | 美女视频免费在线观看 | 日本xxxxx18护士xxx| 国产91精品久久久久久久 | 国产精品视频一区二区三区 | 欧美日韩精品一区二区三区四区 | 国产国产人免费人成成免视频 | 特黄特色一级aa毛片免费观看 | 亚洲国产成人在线 | 手机国产日韩高清免费看片 | 国产在线成人精品 | 日本一区二区三区在线 观看网站 | 日日碰| 成人影院欧美大片免费看 | 久久久噜久噜久久综合 | 日韩欧国产精品一区综合无码 | 99综合之综合久久伊人 | 精品午夜国产在线观看不卡 | 五月久久 | 99re热久久精品这里都是精品 | 精品国产一区二区三区www | 亚洲aa在线 | 天天色综合色 | 久久精品六 | 射狠狠| 成人影院www在线观看 | 久久久午夜精品 |