hier ein Beispiel wie man mit der Log Datenbank arbeiten kann.
In meinem Fall wird für einen gewählten Zeitraum + der Möglichkeit auf eine IP Adresse zu filtern das Dansguardian Log geladen und in einer gewünschten Form in eine csv Datei gespeichert. Zum Schluss noch eine kleine Spielerei um sich alle Bilder herunterzuladen.
Bei der Datenbank handelt es sich um eine SQLite 3 Datenbank.
Benötigt werden:
sqliteadmin - Wenn man per hand etwas auf der Datenbank operieren will.
sqlite3.exe - Um mit der Batch-Datei auf die Datenbank zugreifen zu können.
Python - für 'extractexport.py'
wget.exe + die dazu bennötigten dll Dateien - zum herunterladen der Bilder/Dateien
Hier die Haupt Batch datei - Lädt aus der Datenbank die Dansguardian Logeinträge:
ExportDansGuardian.bat
Code: Alles auswählen
@ECHO OFF
REM =====================================================================
REM Parameter vordefinieren
set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%
SET DEF_DBFILE="C:\\Pfad\\Zur\\Log\\datei\\Logging.db"
SET DEF_SEP=;
SET DEF_IP=
SET DEF_DATE-VON=%jahr%-%monat%-%tag%
SET DEF_DATE-BIS=%jahr%-%monat%-%tag%
SET DEF_EXPORT=export.csv
REM =====================================================================
REM Parameter abfragen und setzen
IF NOT "%1"=="" SET DEF_DATE-VON=%1
IF NOT "%2"=="" SET DEF_DATE-BIS=%2
IF NOT "%3"=="" SET DEF_EXPORT=%3
IF NOT "%4"=="" SET DEF_IP=%4
IF NOT "%5"=="" SET DEF_DBFILE=%5
REM =====================================================================
REM Query
SET DEF_QUERY=SELECT message FROM log WHERE message LIKE '%%Dansguardian%%'
IF NOT "%DEF_IP%"=="" SET DEF_QUERY=%DEF_QUERY% AND message LIKE '%%%DEF_IP%%%'
SET DEF_QUERY=%DEF_QUERY% AND DATE(timestamp, 'unixepoch') BETWEEN '%DEF_DATE-VON%' AND '%DEF_DATE-BIS%';
REM =====================================================================
REM Einleitung
ECHO.
ECHO.Export Dansguardian Log aus Securepoint Log Datenbank
ECHO.
ECHO.Parameter:
ECHO.
ECHO. 1: Von-Datum (Format = YYYY-MM-DD / Default = %jahr%-%monat%-%tag%)
ECHO. 2: Bis-Datum (Format = YYYY-MM-DD / Default = %jahr%-%monat%-%tag%)
ECHO. 3: Export Datei (Default = "export.csv")
ECHO. 4: Filtere auf IP Adresse (Default = kein Filter)
ECHO. 5: Pfad zur Datenbankdatei (kann in der Batch-Datei vordefiniert werden)
ECHO.
ECHO.
REM =====================================================================
REM Voraussetzungen prüfen
IF NOT exist %DEF_DBFILE% GOTO NODBFILE
IF NOT exist Sqlite3.exe GOTO NOSQLITEEXE
IF exist %DEF_EXPORT% GOTO EXPORTEXISTS
REM =====================================================================
REM Start
ECHO.Führe Abfrage aus. Bitte haben Sie einen Moment geduld.
Sqlite3.exe -csv -separator '%DEF_SEP%' %DEF_DBFILE% "%DEF_QUERY%" > 1
extractexport.py
move 2 %DEF_EXPORT%
del 1
ECHO.
ECHO. Fertig!
REM =====================================================================
REM Error Handling
GOTO END
:NOSQLITEEXE
ECHO.Die Datei 'Sqlite3.exe' wurde nicht gefunden.
GOTO END
:EXPORTEXISTS
ECHO.Die Datei '%DEF_EXPORT%' existiert bereits. Bitte geben Sie eine andere Datei an.
GOTO END
:NODBFILE
ECHO.FEHLER: Die Datenbankdatei wurde nicht gefunden. Bitte übergeben der Batch Datei den korrekten Pfad oder definieren Sie diesen in der Datei.
GOTO END
:END
PAUSEHier das Python script - Wandelt das ursprüngliche Log in ein schöneres Format um in die Datei 'urls.txt' werden die Bild-URLs gespeichert. Diese können dann später mit wget heruntergeladen werden.
extractexport.py
Code: Alles auswählen
logfile = open("1", "r").readlines()
newfile = open("2", "w")
urlfile = open("urls.txt", "w")
newarr=[]
for line in logfile:
arr = line.split()
url = '"'+''.join(arr[9:10])+'"'
newfile.write(';'.join(arr[5:6] + arr [6:7] + arr[8:9])+';'+url+'\\n')
if (".jpg" in url) or (".png" in url) or (".jpeg" in url):
urlfile.write(''.join(arr[9:10])+'\\n')
urlfile.close
newfile.close
downloadPics.bat
Code: Alles auswählen
wget -N -i urls.txt -PPICS