.titleBar { margin-bottom: 5px!important; }

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

Dieses Thema im Forum "Freetz" wurde erstellt von SaschaBr, 13 Feb. 2009.

  1. SaschaBr

    SaschaBr Aktives Mitglied

    Registriert seit:
    1 Mai 2007
    Beiträge:
    2,232
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    NRW
    #1 SaschaBr, 13 Feb. 2009
    Zuletzt bearbeitet: 13 Feb. 2009
    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?
     
  2. hermann72pb

    hermann72pb IPPF-Promi

    Registriert seit:
    6 Nov. 2005
    Beiträge:
    3,564
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    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
     
  3. SaschaBr

    SaschaBr Aktives Mitglied

    Registriert seit:
    1 Mai 2007
    Beiträge:
    2,232
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    NRW
    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?
     
  4. zirkon

    zirkon Aktives Mitglied

    Registriert seit:
    12 Aug. 2008
    Beiträge:
    906
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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
     
  5. SaschaBr

    SaschaBr Aktives Mitglied

    Registriert seit:
    1 Mai 2007
    Beiträge:
    2,232
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    NRW
    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.
     
  6. cuma

    cuma Aktives Mitglied

    Registriert seit:
    16 Dez. 2006
    Beiträge:
    2,743
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Mir fällt dazu spontan "logrotate" ein, um in Linux allgemein Logdateien zu archivieren. Leider ist das noch nicht in Freetz
     
  7. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Warum verwendest Du im Skript denn cp statt mv?
     
  8. SaschaBr

    SaschaBr Aktives Mitglied

    Registriert seit:
    1 Mai 2007
    Beiträge:
    2,232
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    NRW
    Was ist der unterschied?
    Isch 'ab doch keine Ahnung von Linux...:lamer:
     
  9. sf3978

    sf3978 IPPF-Promi

    Registriert seit:
    2 Dez. 2007
    Beiträge:
    7,655
    Zustimmungen:
    5
    Punkte für Erfolge:
    38
  10. ao

    ao Aktives Mitglied

    Registriert seit:
    15 Aug. 2005
    Beiträge:
    2,078
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #10 ao, 14 Feb. 2009
    Zuletzt bearbeitet: 14 Feb. 2009
    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.

    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)
    .
     
  11. zirkon

    zirkon Aktives Mitglied

    Registriert seit:
    12 Aug. 2008
    Beiträge:
    906
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Vielleicht die Logs gleich online speichern (WebDAV, ...) - einen extra "Log-Server" stellt sich ja auch nicht jeder hin :)
     
  12. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    2
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    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
     
  13. SaschaBr

    SaschaBr Aktives Mitglied

    Registriert seit:
    1 Mai 2007
    Beiträge:
    2,232
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    NRW
    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.
     
  14. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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.
     
  15. ralfjani

    ralfjani Neuer User

    Registriert seit:
    14 Dez. 2007
    Beiträge:
    44
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Tübingen
    [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).
     
  16. SaschaBr

    SaschaBr Aktives Mitglied

    Registriert seit:
    1 Mai 2007
    Beiträge:
    2,232
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    NRW
    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.