Posts by Dr.Sterni


    tar sagt doch klipp und klar: ES GIBT KEIN DIRECTORY DAS 1 HEISST !

    Schreien gilt nicht :D

    Möchtest Du mir damit sagen, dass da ein Leerzeichen zuviel war? Oder was war nun das Problem dieser Logfile-Ausgabe? Ich hatte ja oben geschrieben, dass ich die Unterschiede in der Schreibweise sicherlich erkenne, aber das heißt ja nicht, dass ich es auch verstehen muss. Das möchte ich aber...

    Danke Dir!

    Hallo zusammen!

    Erst mal vielen Dank für die Ideen zu diesem Thema. Ich fange mal vorne an:

    Das mit dem Verbose-Parameter ist schon mal eine gute Idee. Das setze ich einfach mal. Gibt mehr Analysemöglichkeiten.

    Zur Idee mit dem Exclude: Ich wollte es hier nicht zu komplex machen, stelle aber fest, dass ich dadurch Informationen geschludert habe. Entschuldigung!

    Der ganze Aufruf innerhalb meines Scripts sieht wie folgt aus, und müsste doch damit richtig exkludiert sein, oder?

    Code
    tar -cpzv --one-file-system -P -f ${BACKUP_PFAD}/${BACKUP_NAME}-$(date +%Y%m%d-%H%M%S).tgz  1 2> /var/log/BackupLog/backup.log \
                    --exclude=${BACKUP_PFAD} \
                    --exclude=/proc \
                    --exclude=/lost+found \
                    --exclude=/sys \
                    --exclude=/mnt \
                    --exclude=/media \
                    --exclude=/dev \
                    /

    Zur Gegenfrage bzgl. des "...).tgz 1 2> /var...": Das soll bewirken, dass der Erfolg dieser Backup-Maßnahme in /var/log/BackupLog/backup.log geschrieben wird. NICHT der normale Output, der aber ohne den Parameter "v" ja ohnehin recht ruhig war :-). Ich erkenne zwar den Unterschied bei Deinem Aufruf, weiß aber ehrlich gesagt nicht genau, was das jetzt bewirkt.

    Hallo zusammen,

    ich möchte gerne mit dem Befehl "tar" ein Backup von meinem Raspberry machen. Ich verwende diesen Aufruf:

    Code
    tar -cpz --one-file-system -P -f ${BACKUP_PFAD}/${BACKUP_NAME}-$(date +%Y%m%d-%H%M%S).tgz 1 2> /var/log/BackupLog/backup.log \

    wobei die Konstanten "BACKUP_PFAD" und "BACKUP_NAME" gesetzt sind (und auch stimmen).

    Wie Ihr Euch denken könnt, funktioniert das trotzdem nicht, denn sonst würde ich das ja nicht posten :D

    Der Befehl rennt erst mal los, bricht dann aber irgendwann ab. Ich bekomme folgende Fehlermeldungen im Logfile angezeigt (mehr steht übrigens nicht drin):

    Code
    tar: 1: Kann stat nicht ausführen: Datei oder Verzeichnis nicht gefunden
    tar: Beende mit Fehlerstatus aufgrund vorheriger Fehler

    Ich habe die Befürchtung, dass die Parametrisierung nicht stimmt und dass ich versehentlich verschiedene Parameter miteinander verwende oder auch einzelne Parameter vielleicht an falschen Stellen, so dass tar damit nicht klar kommt.

    Die einzelnen Parameter

    Code
    -c für create
    -p für die Rechteübernahme innerhalb des Backups
    -z für die Kompression mit gzip
    -P für die Beibehaltung der "/" am Anfang der einzelnen zu sichernden Dateien
    -f für "File" (denke, das macht mit dem -c Sinn, wissen tu' ich es aber nicht)
    --one-file-system (versteht sich von selbst, denke ich)

    möchte ich aber schon so nutzen, da sie für meinen Anwendungsfall genau die Funktionen sind, die ich gebrauchen kann. Nur wie muss die Syntax korrekt lauten?!

    Ich würde mich über eine Hilfe hierzu sehr freuen! Vielen Dank im Voraus.

    Ich hoffe, ich darf hier noch mal eine Frage zu diesem Thema stellen. Das Ganze hier hat mich so gepackt, dass ich mir das Bash-Script selber so'n bisschen erweitern möchte.

    Soweit klappt das ganz gut, aber leider auch nur zum Teil und der Satz oben "Fehler gibt es keine mehr" kann ich leider nicht mehr so stehen lassen :D.

    Ich möchte gerne zur Schonung des Raps die tar-Methode verwenden und lasse mich per Mail über den Erfolg oder auch Nicht-Erfolg informieren. Als Ausgabe des tar-Protokolls bekomme ich immer diese Fehlermeldung:

    tar: 1: kann stat nicht ausführen: datei oder verzeichnis nicht gefunden

    wobei dies hier mein Aufruf ist:

    tar -cpz --one-file-system -P -f ${BACKUP_PFAD}/${BACKUP_NAME}-$(date +%Y%m%d-%H%M%S).tgz 1 2> /var/log/BackupLog/backup.log \

    tar wird also aufgerufen: i.O.
    das Dateisystem soll zumindest gebackupt werden, das erkennt er auch: i.O.
    das tar-File wird auch geschrieben (ist aber zu klein): FALSCH!
    das Logfile wird in den Ordner geschrieben: i.O.
    das Ergebnis wird mir per Mail mitgeteilt: i.O.
    Das Backup wird erfolgreich beendet: FALSCH!

    Ich befürchte, ich habe da mit der Parametrisierung irgendwas falsch, aber was???

    Könnt Ihr mir da bitte nochmal helfen? Vielen Dank im Voraus!


    Zu 2) - Ich verstehe nicht warum Du eine Fortzschittsanzeige haben möchtest. Die kann man sicherlich einbauen. Aber eigentlich sollte ein Backup automatisch im Background unattended erstellt werden und da interessiert am Ende nur ob der Backup OK war oder failed. Die etwas umfassendere Scriptversion sendet deshalb auch am Ende des Backups eine eMail mit fail oder success.

    Zugegeben: Das ist so'n Nice-To-Have-Gimmick, wenn ich das Script eben nicht über den Cronjob laufen lasse, sondern zum Testen manuell starte. Du hast natürlich recht: Der Regelfall ist eher der, dass das Script per Cronjob angeschmissen wird. Dann ist es eh egal, da das auch zu einer Zeit passiert, zu der ich garantiert nicht vor dem Raspberry Pi sitze und drauf warte, dass was passiert.

    So zum manuellen Testen wäre es schön, aber wenn das zuviel Mühe macht, lassen wir das besser :D

    Danke für den Tipp zu den unterdrückten Meldungen. Gott sei Dank sind es - nach einigen Tests und Umstellungen an den Parametern, die ich noch falsch hatte - wirklich nur noch Meldungen. Fehler gibt es keine mehr :-).

    Juchu :D

    Guten Tag framp,
    guten Tag Community!

    Erst mal einen ganz herzlichen Dank für dieses wirklich gute Tutorial! Endlich mal einer, der erklärt, was Sache ist. Ich hatte (naja, wahrscheinlich habe ich noch...) null Ahnung von Bash-Scripts, aber das hier ist nun wirklich cool!

    Ich habe aber noch zwei Fragen hierzu:

    1. Wenn man den Weg über dd geht, ist alles ganz easy und so wie Du beschrieben hast (in diesem Tutorial, nicht mit dem downloadbaren größeren Script, das kenne ich noch nicht).

    Wenn man aber tar anstelle dessen wählt, um einerseits die SD ein wenig zu entlasten und zweitens damit auch die Möglichkeit gewinnt, auf einer nicht ganz so großen Karte evtl. ein Restore machen zu können, klappt das so nicht!

    tar hat Schwierigkeiten mit absoluten Dateipfaden, um zu vermeiden, bei einem Restore "versehentlich" alles sofort in den Root-Ordner zu schmeißen. In der Regel wird man das ja sogar wollen wollen, daher könnte tar von mir aus den absoluten Dateipfad gerne unterstützen. Tut es aber so erst einmal nicht. Erst wenn in dem Block, der bei Dir oben mit "# tar..." beginnt, vorher ein "cd /" gesetzt wird und damit direkt in das Hauptverzeichnis gesprungen wird, bevor dann der tar-Befehl das eigentliche Backup macht, klappt das. Doof ist allerdings, dass trotzdem der Hinweis erscheint 'Entferne führende "/" von Elementnamen' und später im laufenden Backup-Prozess 'Entferne führende „/“ von Zielen harter Verknüpfungen'.

    Trotzdem scheint es zu laufen, aber nerven tut es trotzdem. Zumindest bei mir war es so.

    Irgendwo habe ich gelesen, dass die Verwendung des Parameters "-C" hinter dem kompletten tar-Befehl (aber noch vor dem "\") dazu führen soll, dass es klappt. Ich habe es damit trotzdem nicht ohne die Fehlermeldung ausgegeben bekommen und ohne das "cd /" am Anfang ging es auch nicht.

    Gibt es da eine Verbesserungsmöglichkeit oder habe ich noch was falsch verstanden?

    2. Was ein bisschen stört ist die Tatsache, dass der Raspberry Pi nun beim Backup rödelt und rödelt. Insbesondere, da er die zu sichernden Dateien ja auch noch packen muss bei Verwendung von tar dauert es eine gefühlte halbe Ewigkeit, bis das Teil fertig ist. Trotzdem ist es weiterhin nutzbar, aber das ist ja nicht Sinn der Sache.

    Kann man in das Script eine Art Fortschrittsanzeige einbauen ähnlich z.B. zu "wget" oder so, wo immer diese "="-Zeichen in den eckigen Klammern mitlaufen. Geht sowas? Ich weiß, dass es möglich wäre, sich in einem zweiten Fenster die Prozesse anzeigen zu lassen, die laufende PID von einem dd-Backup-Prozess zu "killen" und damit irgendwie zumindest die Größe der bereits geschriebenen Datei anzeigen zu lassen. Die Methode halte ich aber insbesondere bei tar für total blöde, weil ich ja gar nicht weiß, wie groß das Endergebnis sein würde. Außerdem weiß ich nicht, ob der Prozess mit "kill" nicht sogar tatsächlich abgeschossen würde, was ja nicht im Sinne dieser Aktion wäre.

    Vielen Dank für die Hilfe im Voraus!