簡體   English   中英

Python-Postfix日志的最后一小時

[英]Python - last hour of postfix log

我正在尋找一種獲取由postfix創建的過去一個小時的日志日志文件的有效方法。 我想在python或bash中做到這一點。

到目前為止,我已經提取了保存在postfix日志中的月份和日期:

now_m = today.ctime().split()[1]
now_d = int(today.ctime().split()[2])

但被困在這里,需要一些新鮮的想法。

任何幫助將不勝感激。

代碼示例:

Apr  2 11:53:15 server01 postfix/bounce[9177]: 62A347FB99: sender non-delivery notification: 6F4B67FB97
Apr  2 11:53:15 server01 postfix/qmgr[8140]: 5E9B07FB95: removed
Apr  2 11:53:15 server01 postfix/qmgr[8140]: 62A347FB99: removed
Apr  2 11:53:15 server01 postfix/qmgr[8140]: 6F5837FB98: from=<>, size=4054, nrcpt=1 (queue active)
Apr  2 11:53:15 server01 postfix/bounce[9182]: 652D67FB9D: sender non-delivery notification: 6F5837FB98
Apr  2 11:53:15 server01 postfix/qmgr[8140]: 652D67FB9D: removed
Apr  2 11:53:15 server01 postfix/qmgr[8140]: 6EE717FB92: from=<>, size=4926, nrcpt=1 (queue active)
Apr  2 11:53:15 server01 postfix/qmgr[8140]: 6F4B67FB97: from=<>, size=3448, nrcpt=1 (queue active)
Apr  2 11:53:15 server01 postfix/smtpd[9163]: disconnect from unknown[10.0.0.4]

再舉一個例子:

Aug 30 09:00:56 server01 postfix/qmgr[2321]: 1654A7FB86: removed
Aug 30 09:01:57 server01 postfix/smtpd[4320]: connect from unknown[10.0.0.0]
Aug 30 09:01:57 server01 postfix/smtpd[4320]: disconnect from unknown[10.0.0.0]
Aug 30 09:02:16 server01 postfix/smtpd[4320]: connect from unknown[10.0.0.0]
Aug 30 09:02:16 server01 postfix/smtpd[4320]: 21F077FB86: client=unknown[10.0.0.0]

這很簡單:

NOW=`date +%s`; THEN=`expr $NOW - 3600`; until (("$THEN" > "$NOW")); do DATE=`date -d @\$THEN +'%b %e %k:%M:%S'`; grep -e "^$DATE" /var/log/maillog && sed -n -e "/^$DATE/,\$p" /var/log/maillog && break; THEN=`expr $THEN + 1`; done

換一種說法:

1)獲取當前時間$ NOW

2)1小時前獲得時間$ THEN

3)如果有以$ THEN開頭的行,則打印該行及其后的所有內容(並中斷循環)

4)將$ THEN增加一秒鍾,然后重復直到$ NOW(或者直到找到東西)

它不是很有效,也不是很快,但是可能會為您提供很好的服務。

基本軌道是讀取每一行,並將其時間戳解析為datetime.datetime對象。 有幾種方法可以這樣做,例如,使用其.fromtimestamp (靜態)方法。 或更一般的解析器(請參閱utile)

然后使用datetime.datetime.now()減去datetime.timedelta(mins=60) ; 可以將結果與已解析的時間戳進行比較。

就這么簡單! 無需做任何手冊,工作。

PS下次添加日志文件/行的示例。 我們可以給出具體的示例代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM