Backup von Logdateien (z.B. Syslog, vsftp)

SaschaBr

Aktives Mitglied
Mitglied seit
1 Mai 2007
Beiträge
2,351
Punkte für Reaktionen
32
Punkte
48
Hallo Leute.

Ich würde gerne sämtliche Logdateien, die ich so auf dem USB-Stick mitlogge (z.B. Syslog, vsFTP) täglich sichern, und dann mit leeren Logs den Tag beginnen.
Diese Logs möchte ich jeweils in gesonderten Ordner ablegen (z.B. in einem fixen Unterordner namens "Logs" im aktuell eingestellten Ordner für den Syslog bzw. vsftp-log), und den Dateinamen mit dem Speicherzeitpunkt (z.B.: 2009-02-13-18-35) ergänzen.

Besteht die Möglichkeit, das mit geringem Aufwand hinzubekommen, oder ist da schon mehr programmieraufwand nötig?


EDIT:
In RRDstats ist ja ein Backup-Script vorhanden, welches bei starten von RRDstats ein Backup anlegt. Kann man diese nicht irgendwie umwurschteln?
 
Zuletzt bearbeitet:
Wenn du es nicht wie bei Linux üblich (so wie ich es kenne) nach Größe, sondern fix-täglich machen willst, wird der Aufwand deutlich geringer. Sowas lässt sich mit einem shell-Skript realisieren. Vermutlich 10-20 Zeilen, nicht mehr.

Man kann es nachher natürlich etwas erweitern, automatisieren und als Paket in FREETZ einbauen. Dann wird der Aufwand etwas größer. Und man sollte sich etwas mehr Gedanken über die Struktur und Verallgemeinerung des Ganzen machen.

MfG
 
Genau das will ich: Täglich um eine bestimmte Uhrzeit (Vorzugsweise Mitternacht, bzw. um23:59, um das passende Datum zu haben) backups machen.

Wie muss so ein script aussehen, und wie bekomme ich das auf die Box?
 
Einfach ein Shell-Skript erstellen, welches die entsprechenden Dateien auf deinen USB-Stick kopiert und danach "leert". Via cronjob kannst du es dann, in dem von dir gewünschten Intervall, ausführen lassen. Quick&Dirty :p
 
... Via cronjob ... Quick&Dirty ...

So, denke, ich habs hinbekommen. Das ist ja wirklich nicht schwer. :)

Backupscript:
Code:
# Syslog sichern und leeren
cp /var/media/ftp/uStor11/Syslog/syslog.fbt /var/media/ftp/uStor11/Syslog/Backup/syslog$(date +"_%Y-%m-%d_%H-%M").fbt
echo -n > /var/media/ftp/uStor11/Syslog/Syslog.fbt
# vsftpd-log sicheren und leeren
cp /var/media/ftp/uStor11/vsftpd/vsftpd.fbt /var/media/ftp/uStor11/vsftpd/Backup/vsftpd$(date +"_%Y-%m-%d_%H-%M").fbt
echo -n > /var/media/ftp/uStor11/vsftpd/vsftpd.fbt

Habe dieses Script jetzt auf dem USB-Stick liegen, und lasse dieses jetzt via cronjob um 23.59 ausführen. Der Aufruf im Telnet-Fenster und Rudi-Shell funktioniert jedenfalls.
 
Mir fällt dazu spontan "logrotate" ein, um in Linux allgemein Logdateien zu archivieren. Leider ist das noch nicht in Freetz
 
Was ist der unterschied?
Isch 'ab doch keine Ahnung von Linux...:lamer:
 
cp=copy, mv=move, d.h. bei cp bleibt die Ursprungsdatei am Ursprungsort (eben "copy"), bei mv wird sie an den Zielort verschoben, dass heisst, sie ist dann nicht mehr am Ursprungsort vorhanden.

Allerdings sollte man folgendes bedenken:
Wenn die FB abstürzt, wird es evtl. nicht mehr möglich sein, die Ursache des Absturzes/Reboots nachher im Log zu finden, wenn der Backup-Prozess des Syslog nur zu bestimmten Zeiten stattfindet. Es ist evtl. geschickter, einen sog. Loghost (z.B. NSLU2, aber auch jeder andere geeignete Linux-"Rechner") laufen zu lassen. Der Name verwirrt evtl., denn es ist ein zentraler Log-Server. Daten einer "abstürzenden" FB werden solange wie möglich an diesen Loghost geschickt, was evtl. länger sein dürfte als auf den lokalen USB-Stick. Korrigiert mich bitte, wenn nötig. Jedenfalls habe ich die Infos aus diesem Thread.

Aus diesem Grund hatte ich auch den Thread Syslogd-Output auf Loghost speichern eröffnet.

Mir fällt dazu spontan "logrotate" ein, um in Linux allgemein Logdateien zu archivieren. Leider ist das noch nicht in Freetz
Dachte ich eigentlich auch, aber es ist doch (z.B. rudimentär) da. Ich mache mal einen Thread für logrotate auf der FB für diejenigen auf, denen das in Freetz vorhandene "logrotate" zu wenig ist. (falls es mehr nützliche Funktionen gibt)
.
 
Zuletzt bearbeitet:
Vielleicht die Logs gleich online speichern (WebDAV, ...) - einen extra "Log-Server" stellt sich ja auch nicht jeder hin :)
 
Mir fällt dazu spontan "logrotate" ein, um in Linux allgemein Logdateien zu archivieren. Leider ist das noch nicht in Freetz
Code:
BusyBox v1.12.4 (2009-02-01 20:11:23 CET) multi-call binary
Usage: syslogd [OPTION]...
System logging utility.
Note that this version of syslogd ignores /etc/syslog.conf.
Options:
        -n              Run in foreground
        -O FILE         Log to given file (default=/var/log/messages)
        -l n            Set local log level
        -S              Smaller logging output
[B]       -s SIZE         Max size (KB) before rotate (default=200KB, 0=off)[/B]
[B]       -b NUM          Number of rotated logs to keep (default=1, max=99, 0=purge)[/B]
        -R HOST[:PORT]  Log to IP or hostname on PORT (default PORT=514/UDP)
        -L              Log locally and via network (default is network only if -R)
        -C[size(KiB)]   Log to shared mem buffer (read it using logread)
Geht halt nicht nach Zeit...

MfG Oliver
 
... Allerdings sollte man folgendes bedenken:
Wenn die FB abstürzt, wird es evtl. nicht mehr möglich sein, die Ursache des Absturzes/Reboots nachher im Log zu finden ...

Da ich sowieso auf dem USB-Stick logge, sind die Logs auch nach einem Absturtz noch da. Wie lange und in welchem Umfang die Box allerdings in solch einem Fall mitloggen kann, weiß ich aber auch nicht.
Ich habe das nur der Übersicht halber gemacht. Ich persönlich finde es halt besser, tägliche Logs zu haben. Außerdem muss man im WebIf nicht mehr so weit nach unten scrollen.
Der 1 Gbyte große Stick muss doch irgendwie voll zu bekommen sein! :lol:

Aber wieso ich anstatt copy jetzt move nehmen sollte, bzw. warum das besser sein soll, habe ich auch nach dem durchlesen der Manuals noch nicht verstanden. Bin froh, das ich das überhaupt hinbekomme habe.
 
Weil Copy erst mal eine Kopie der Datei anlegt, was je nach Größe einige Zeit dauern kann. Nachher löscht Du die original Datei sowieso. Wenn Du statt dessen die Original-Datei mit Move verschieben würdest, würde die unnötige Kopier-Operation wegfallen.
 
[Edit:] ok da war ich zu langsam :)
Ganz nebenbei: Achte bei Pfad und Dateiangaben auf die richtige groß und kleinschreibung. In deinem oben aufgeführten Script schreibst du einmal /syslog.fbt das andere mal /Syslog.fbt
Unter Linux / Unix ist das dann eben nicht die gleiche Datei (im gegensatz zu Windows).
 
Ich habe eben auf mv in Verbindung mit touch (neue Datei erstellen) umgestellt. Dabei ist mir das mit der Großschreibung auch aufgefallen, und habs im Script korrigiert.
Dass das bei Linux/ Unix nicht egal ist, habe ich auch schon leidvoll feststellen müssen, interressanter Weise hats in diesem Fall aber trotzdem funktioniert.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.