1

サーバーに大きなログファイルが含まれています。最近5日間のログデータを取得したいです。ここにログファイルの一部があります

    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
    Sat Jun  2 03:32:22 2012 [pid 12677] CONNECT: Client "66.249.68.236"
    Sat Jun  2 03:32:23 2012 [pid 12676] [ftp] OK LOGIN: Client "66.249.68.236", anon password "xxxxxbot@google.com"

コードを使用していますが、open(filename) に構文エラーがあります。コマンドは python ex.py vsftp.log です。誰かが解決するのを手伝ってくれますか。出力行を保存する新しいログ ファイルを作成します。ありがとう

from sys import argv 
import time
script, filename = argv
with open(filename) as f:
    lines= [line for line in f]
def OnlyRecent(line):
    return time.strptime(line.split("[")[0].strip(),"%a %b %d %H:%M:%S %Y")   <(time.time()-(60*60*24*5))
print "\n".join(filter(OnlyRecent,lines))

しかし、コードを使用すると機能しますか? なぜ sys import argv から

  script, filename = argv

  txt = open(filename)

  print "Here's your file %r:" % filename
  print txt.read()

ex.py ファイルを作成するとき

  f =open('/opt/CLiMB/Storage1/log/vsftp.log','r')
  print f.readline

python ex.py と入力します

ファイルオブジェクトの組み込みメソッド readline が 0x に表示されている... 解決方法。ありがとう

4

2 に答える 2

1

フォーマットの日付文字列が間違っています。

"%a %b %d %H:%M:%S %Y"

man strftimeシェルから、何を配置するかを確認できます(他のソースの中でも!)

于 2012-09-05T08:41:50.353 に答える
1

"%a %b %d %H:%M:%S %Y" のように、h、m、および s が strptime で大文字であることを確認できます。

return time.strptime(line.split("[")[0].strip(),"%a %b %d %H:%M:%S %Y")   <(time.time()-(60*60*24*5))

別の注意として、日時が間違っている場合、またはログファイルにバグを引き起こす複数行のステートメントがある場合に備えて、リターンを try/except ステートメントで囲むことができます。

def OnlyRecent(line):
    try:
       return time.strptime(line.split("[")[0].strip(),"%a %b %d %H:%M:%S %Y")   <(time.time()-(60*60*24*5))
    except:
       return False

Python 2.4.3 の場合、使用しているファイル読み取り構文は機能しないと思います。次のようなものを試してください:

f = open('file.txt', 'r')
lines = f.readlines()
f.close()

2.4.3 のドキュメントの詳細: http://docs.python.org/release/2.4.3/tut/node9.html#SECTION00920000000000000000

于 2012-09-05T08:44:09.900 に答える