Heim >Backend-Entwicklung >Python-Tutorial >Einfaches Skript zur Webserver-Protokollanalyse

Einfaches Skript zur Webserver-Protokollanalyse

高洛峰
高洛峰Original
2016-10-18 11:56:451885Durchsuche

Aus verschiedenen Gründen fiel mir die Aufgabe zu, das Einbruchsprotokoll zu analysieren. Wie kann ich das 1G-Protokoll schnell analysieren? ? Herr Ci sagte, er könne ein Skript erstellen, um es zu analysieren und in der Datenbank zu speichern und es dann in der Datenbank zu analysieren. . . Vergessen Sie es, das ist nervig. Schreiben Sie einfach ein Skript, um die problematischen Protokolle zu analysieren. Es gab also dieses kleine Drehbuch. Wie Sie es verwenden, liegt ganz bei Ihnen, haha. Wenn Sie beispielsweise die SQL-Injection-Anweisung finden und dann die IP sehen, können Sie das Skript ändern, die IP als Funktion zum Extrahieren des Protokolls verwenden und das analysieren Einbruchsprozess. Es ist sehr schnell. Es dauert nur ein paar Sekunden, bis mein kaputter Computer eine 1G-Protokolldatei ausführt.

Programme zu schreiben, um Aufgaben bei der Arbeit zu erledigen, macht sehr viel Spaß und ist interessant. Haha

Verwenden Sie die Parameter: seay.py E:/1.log

#coding = utf8
#Filename = seay.py
import os
import sys
  
#特征,可以随意改,两块五一次
_tezheng = {'union','select','file_put_contents'}
  
def CheckFile(_path):
      
    _f = open(_path,"r")
    _All_Line = _f.readlines()
    _f.close()
      
    _Count_Line =0
    _Len_Line = len(_All_Line)
          
    _Ex_Str = ''
  
    print('Read Over --')
      
    while _Count_Line<_Len_Line:
            _Str = _All_Line[_Count_Line]           
            for _tz_Str in _tezheng:
                if _tz_Str in _Str: #可以加and条件,这个贵一点,5毛一次
                    _Ex_Str+=_tz_Str+_Str+&#39;\r\n&#39;
            _Count_Line+=1
      
    _f1 = open(_path+&#39;.seay.txt&#39;,"w")
    _f1.write(_Ex_Str)
    _f1.close()   
    print &#39;Find Over--&#39;  
  
if len(sys.argv)==2:
    _File = sys.argv[1]
    if os.path.lexists(_File):
        CheckFile(_File)
    else:
        print(&#39;File does not exist!&#39;)
else:
    print &#39;Parameter error&#39;
    print sys.argv[0]+&#39; FilePath&#39;

Die endgültig generierte Datei lautet: Originaldateiname.seay.txt im selben Verzeichnis, das Format stimmt mit den Funktionen überein Protokoll

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn