- Mitglied seit
- 26. Okt 2009
- Beiträge
- 9.662
- Punkte für Reaktionen
- 1.560
- Punkte
- 314
Hi!
Ich habe mich nochmal ein wenig mit der Auswertung der /var/log/cron.log beschäftigt. Mich hat vor allem die Dateigröße gestört, die nach einem Scriptdurchlauf erzeugt wurde. Der Grund dafür ist, das wget standardmäßig jeden Schritt protokolliert und das dann auch in der cron.log festgehalten wird. Bei ca. 9000 Dateien kommt da ganz schön was zusammen.
So geht das ja nicht, dachte ich mir und suchte nach einer Lösung. Ich fand sie auch in der wget-Anweisung und habe damit gleich 2 Fliegen mit einer Klappe geschlagen. Ich umgehe jetzt die cron.log und schreibe gleich eine eigene Protokolldatei (/var/log/wget.log), die dann bei jedem Durchlauf wieder überschrieben wird. Das hält die Dateigröße der neuen wget.log Protokolldatei ziemlich klein.
Hier erstmal mein angepasstes Script
und hier nochmal die Optionen im Überblick!
So weit so gut. Jetzt habe ich das ganze schon mal von ca. 9000 Zeilen auf etwa 490 Zeilen geschrumpft. Super Leistung!
Aber.... das meiste, was jetzt noch protokolliert wird, sind die .listing Informationen, die wget anscheinden in jedem Verzeichnis anleget. Das ganze sieht im Protokoll dann ungefähr so aus:
Da mir diese Info's nicht wirklich etwas nutzen, würde ich diese gern auch aus dem Protokoll streichen, so das am Ende nur die reine Information in der wget.log geschrieben wird, welche Dateien sich geändert haben, weche dazu gekommen sind und welche gelöscht wurden.
Aber wie mache ich das? Da die Zeile ja nichts anderes als ein String ist (richtig), kann man das doch bestimmt in irgendeiner Form, wie z.B.
...oder so als Anhaltspunkt zum löschen angeben. Aber an und mit welchem Befehl kann ich das umsetzen? An den wget, oder vielleicht an den cat Befehl? Oder muß ich mir dafür in dem Script selber irgendeine Routine einbauen und wenn ja, wie könnte sowas ausehen?
Ich hoffe ich hab mich nicht zu kompliziert ausgedrückt und ihr könnt mir vielleicht dabei helfen!
Danke, Tommes!
Ich habe mich nochmal ein wenig mit der Auswertung der /var/log/cron.log beschäftigt. Mich hat vor allem die Dateigröße gestört, die nach einem Scriptdurchlauf erzeugt wurde. Der Grund dafür ist, das wget standardmäßig jeden Schritt protokolliert und das dann auch in der cron.log festgehalten wird. Bei ca. 9000 Dateien kommt da ganz schön was zusammen.
So geht das ja nicht, dachte ich mir und suchte nach einer Lösung. Ich fand sie auch in der wget-Anweisung und habe damit gleich 2 Fliegen mit einer Klappe geschlagen. Ich umgehe jetzt die cron.log und schreibe gleich eine eigene Protokolldatei (/var/log/wget.log), die dann bei jedem Durchlauf wieder überschrieben wird. Das hält die Dateigröße der neuen wget.log Protokolldatei ziemlich klein.
Hier erstmal mein angepasstes Script
Code:
#!/bin/sh
wget -m -nv -o /var/log/wget.log -P /volume1/BACKUPVERZEICHNIS/ ftp://BENUTER:PASSWORT@DOMAIN.TLD/
dat_now=`date +%Y-%m-%d_%H:%M:%S`
cat /var/log/wget.log | /opt/bin/nail -s"Die Sicherung wurde am $dat_now durchgeführt" MAIL@PROVIDER.TLD
und hier nochmal die Optionen im Überblick!
-P, --directory-prefix=PREFIX Dateien unter dem Verzeichnis PREFIX/...
speichern
-nv oder --non-verbose
Es werden weniger meldungen ausgegeben.
-m oder --mirror
Aktiviert Optionen, die zum Erstellen eines Mirrors (Spiegels) einer Website notwendig sind. Folgende Optionen werden aktiviert: -r -N -l inf --no-remove-listing
-o Datei oder --output-file=Datei
Protokoll-Meldungen werden in die angegebene Datei geschrieben. Wenn die Datei bereits existiert, wird sie überschrieben.
So weit so gut. Jetzt habe ich das ganze schon mal von ca. 9000 Zeilen auf etwa 490 Zeilen geschrumpft. Super Leistung!
Aber.... das meiste, was jetzt noch protokolliert wird, sind die .listing Informationen, die wget anscheinden in jedem Verzeichnis anleget. Das ganze sieht im Protokoll dann ungefähr so aus:
Code:
20:35:46 URL: ftp://BENUTER:PASSWORT@DOMAIN.TLD/ [1067] -> "/volume1/BACKUPVERZEICHNIS/.listing" [1]
Aber wie mache ich das? Da die Zeile ja nichts anderes als ein String ist (richtig), kann man das doch bestimmt in irgendeiner Form, wie z.B.
Code:
Wenn die Zeile *.listing" [1] enthält dann lösche diese Zeile
Ich hoffe ich hab mich nicht zu kompliziert ausgedrückt und ihr könnt mir vielleicht dabei helfen!
Danke, Tommes!