次のようなログファイルにPythonでフィルターを作成します
Sat Jun 2 03:32:13 2012 [pid 12461] CONNECT: Client "66.249.68.236"
Sat Jun 2 03:32:13 2012 [pid 12460] [ftp] OK LOGIN: Client "66.249.68.236", anon password "gxxglxxxxt@google.com"
Sat Jun 2 03:32:14 2012 [pid 12462] [ftp] OK DOWNLOAD: Client "66.249.68.236", "/pub/10.5524/100001_101000/100022/readme.txt", 451 bytes, 1.39Kbyte/sec
スクリプトは
import time
f= open("/opt/CLiMB/Storage1/log/vsftp.log")
def OnlyRecent(line):
if time.strptime(line.split("[")[0].strip(),"%a %b %d %H:%M:%S %Y") < time.time()-(60*60*24*2):
return True
return False
for line in f:
if OnlyRecent(line):
print line
f.close()
しかし、このスクリプトを実行しても何も表示されませんでした。2 日間で発生したレコードを表示できないのはなぜですか。また、ログ ファイルは非常に大きく、レコードは時間順に並べ替えられているため、レコードの検索を高速化する方法を説明します。
ありがとう