raspiBackup - Sichere Deine Raspberry regelmäßig im laufenden Betrieb

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Immer wieder lese ich mal dass Leute eine SD Karte oder auch eine USB Platte clonen wollen. Das geht mit raspiBackup - allerdings ueber den Umweg dass erst ein Backup erstellt werden muss der dann auf dem neuen Medium restored werden muss.

    Ich koennte eine Option --clone in raspiBackup einbauen mit der man ohne den Umweg eines Backups einen Clone erstellen kann. Genaugenommen ist das dann auch ein Backup - aber eben nur einer. Deshalb ist die Frage ob diese Funktion in einem Backuptool Sinn macht. Auch ist die Frage ob es dafuer signifikanten Bedarf gibt denn ich baue in raspiBackup nur Features bei der es auch eine groessere Nutzungfrequenz gibt. Ansonsten ist es meine verschwendete Zeit :no_sad:

    rpi-clone ist z.B. ein nettes OpenSourceTool was man fuer Cloneoperationen bereits gut nutzen kann.

  • raspiBackup - Sichere Deine Raspberry regelmäßig im laufenden Betrieb? Schau mal ob du hier fündig wirst!

  • Eben habe ich einen bloeden Bug in raspiBackup gefixed: Der Restore eines tgz Backups endet mit RC 2 vom tar und RC117 von raspiBackup.

    Der Bug wurde in Release 0.6.7 am 3.10.2022 eingebaut. Wer also einen 0.6.7 Release mit neuerem Commit Date hat (mit raspiBackup.sh --version checken) oder die Release 0.6.8 nutzt muss raspiBackup mit sudo raspiBackup.sh -U -S updaten sofern der Backuptyp compressed tar genutzt wird. Ansonsten ist kein Restore moeglich. Im Kontext des debuggens dieses Issues habe ich auch eine Anleitung erstellt wie man manuell ein tgz Backup restoren kann.

    Sorry for the inconvenience :blush:

  • Der Bug wurde in Release 0.6.7 am 3.10.2022 eingebaut.

    warum macht man sowas? :conf:

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • warum macht man sowas?

    Du tust ja so als haettest Du noch nie einen Bug geschossen :lol:

    Dank github konnte ich sehr genau nachvollziehen wann ich die Zeile verbugged habe. Zeigt sich mal wieder das SW Development ohne Librarysystem zwar moeglich ist - eine Wartung aber ist schlichtweg unmoeglich.

  • Du tust ja so als haettest Du noch nie einen Bug geschossen :lol:

    meine Ausrede beim falschen Widerstand oder Kondensator, ich hatte gerade keinen Passenden und deine? ;)

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Hallo framp,

    nach meiner Erfahrung wird eine Software umso unwartbarer, je länger und unübersichtlicher der Code gestrickt ist.

    Bei meinen Projekten seit 2013 habe ich mir angewöhnt, bereits in der Designphase (Pflichtenheft, Technisches Design) alle untergeordneten Aufgaben in Modulen (mit integrierten automatischen Modultests) auszulagern. Diese Dinger kann ich zu einer sehr frühen Phase der Entwicklung testen (lassen), dokumentieren (lassen). Wenn ich trotzdem in diesen funktionalen Modulen herumfuhrwerken sollte, erkennt die Umgebung, ob der Modultest noch gültig ist - oder wiederholt durchzuführen und zu dokumentieren ist.

    Es gibt kaum was Nervenderes, als Fehler im eigenen Code zu finden, der mal funktioniert hat.

    Auch habe ich mir angewöhnt, kleinste Änderungen auf Compilierbarkeit und Funktionalität zu prüfen. Denn nur dann, habe ich eine nennenswerte Chance, den Einfluss einer Änderung auf das "Große Ganze" beurteilen zu können.

    Leider führt selbst diese Sorgfalt dazu, dass ich manchmal frustriert Fehler suche. Sehr oft sind es typische Anfängerfehler... Fehler, über die man nach 40 Jahren Programmieren eigentlich hinaus sein sollte.

    Abschließend mein allerbester Tipp: Früher träumte ich, wie ich programmiere, um das Problem des Tages zu lösen. Das führte zu einem entspannten sehr frühen Feierabend, einem intensiven Traum - und am nächsten Morgen 30-minütiges Akkord-auf-die-Tastatur-eindreschen, bis es dann funktionierte. In der gleichen Form am Vortag, hätte ich stundenlang voller Frustration vor dem Räscheknecht verbracht.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (26. Januar 2023 um 19:46)

  • nach meiner Erfahrung wird eine Software umso unwartbarer,

    je länger man daran arbeitet!

    Meine ganzen Arduino Module die mal unter win64 UND raspi(32) für AVR und ESP funktionierten sind nun tot :!:

    Es änderten sich die Librarys und die IDE. Das macht dann keinen Spass mehr. Ich Pflegte auch die LIBs über alle Computer, aber seit ich neue Computer brauchte win10 win11 sind die Libs nicht mehr funktionabel.

    Ich mag auch nun nicht alles neu ergründen was ich schon vor 7 Jahren ergründet hatte.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • nach meiner Erfahrung wird eine Software umso unwartbarer, je länger und unübersichtlicher der Code gestrickt ist

    Ich sehe nicht dass raspiBackup unwartbar ist. Es hat zwar schon knapp 10 Jahre auf dem Buckel - aber ist in der Zeit auch sehr in seiner Funktionalitaet gewachsen.

    Bei meinen Projekten seit 2013 habe ich mir angewöhnt, bereits in der Designphase (Pflichtenheft, Technisches Design) alle untergeordneten Aufgaben in Modulen (mit integrierten automatischen Modultests) auszulagern. Diese Dinger kann ich zu einer sehr frühen Phase der Entwicklung testen (lassen), dokumentieren (lassen). Wenn ich trotzdem in diesen funktionalen Modulen herumfuhrwerken sollte, erkennt die Umgebung, ob der Modultest noch gültig ist - oder wiederholt durchzuführen und zu dokumentieren ist.

    Beruecksichtige bitte dass raspiBackup urspruenglich ein winziges Tool fuer mich war um meine Raspberries zu sichern und ich irgendwann dachte es wuerde auch ein hilfreiches Tool fuer die Community sein. Frage nicht was ich an Aufwand spendiert habe um alle moeglichen Environment- , Configuration- oder Eingabefehler abzufangen. Das war als nur ich es nutze nicht notwendig da ich weiss was ich tue.

    Es gibt kaum was Nervenderes, als Fehler im eigenen Code zu finden, der mal funktioniert hat.

    Dafuer gibt es einen Regressiontest der alle moeglichen Backup/Restore Konfigurationen testet. Leider ist dieser Bug nicht entdeckt worden da der Fehler in einem spezieller Codepfad vorlag.

    Abschließend mein allerbester Tipp: Früher träumte ich, wie ich programmiere, um das Problem des Tages zu lösen. Das führte zu einem entspannten sehr frühen Feierabend, einem intensiven Traum - und am nächsten Morgen 30-minütiges Akkord-auf-die-Tastatur-eindreschen, bis es dann funktionierte. In der gleichen Form am Vortag, hätte ich stundenlang voller Frustration vor dem Räscheknecht verbracht.

    Klar - bei groesseren Dingen macht es immer Sinn mal ueber die Sache zu schlafen. Habe ich oft @office genug praktiziert. In diesem Falle war es ein kleiner Fix fuer einen Issue (5 Zeilen geaendert) und der Bug ist auch recht schnell visuell im Code zu finden. Ich weiss nun nicht mehr was damals gerade bei mir passierte. Aber saemtliche Aktionen finden in meiner Freizeit statt und da gibt es immer wieder Interrupts von der besseren Haelfte oder anderen Quellen und dann kommt sowas eben vor.

    Ich hatte mal angefangen raspiBackup in go neu zu schreiben (Siehe hier) aber der Aufwand fuer mich ist hoch und bringt mir nichts denn fuer mich erfuellt raspiBackup meine Anforderungen. Ich wuerde sagen 80% der Features von raspiBackup kamen von Nutzern rein. Das ist gut so - dadurch ist raspiBackup in so vielen Environments einsetzbar und ich habe auch gerne die Featurerequests implementiert. Das alles noch mit Unittests abzudecken waere schoen gewesen - ist aber in bash wirklich kein Spass.

    Kurzum: raspiBackup ist eben ein kostenloses Feierabendprojekt und kein professionelles Projekt fuer das ein Kunde bezahlen muss.

  • Hallo Jar,

    je länger man daran arbeitet!

    Meine ganzen Arduino Module die mal unter win64 UND raspi(32) für AVR und ESP funktionierten sind nun tot :!:

    Es änderten sich die Librarys und die IDE. Das macht dann keinen Spass mehr. Ich Pflegte auch die LIBs über alle Computer, aber seit ich neue Computer brauchte win10 win11 sind die Libs nicht mehr funktionabel.

    Ich mag auch nun nicht alles neu ergründen was ich schon vor 7 Jahren ergründet hatte.

    die tollen Sachen, die Du damals in Bulgarien programmiert hast, wollen auch nicht mehr?

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • die tollen Sachen, die Du damals in Bulgarien programmiert hast, wollen auch nicht mehr?

    genau, die IDE, die LIBs und alles wie board.txt wurden umgekrempelt!

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Es gab einen raspiBackup Nutzer dem hat tar auf die Finger gehauen weil sich irgendwas geaendert hat waehrend des Backups :( Er fragte wie er rausfinden kann was sich geaendert hat. tar Ist da in seiner Meldung sehr unspezifisch. Ich weiss nicht mehr warum aber mir fiel dann ploetzlich eine Loesung ein die gut funktioniert: Einfach waehrend des Backups in einem weiteren Fenster folgenden Befehl eingeben:

    Code
    inotifywait -m -e delete -e create -e move -e modify -e attrib <Verzeichnis wo sich was geaendert hat>

    U.U. muss noch die Option -r zugefuegt werden um auch alle Unterverzeichnisse zu beobachten.

    Dieses habe ich auch in den FAQs aufgenommen ;)

  • Ich habe da ein Problem beim ersten Restore testen.

    Das Backup ging problemlos auf meine Synology. Das *.img file ist mit allen anderen Ordner/Dateien vorhanden

    Fehler:

    ??? RBK0149E: Datei" blabla usw" existiert nicht.

    Wahrscheinlich mache ich beim Restore Pfad ein Überlegungsfehler

    Kann mir jemand hier ein Beispiel Pfad angeben. Dies hilft mir vielleicht weiter beim Finden des richtigen Pfades.

    {sudo raspiBackup.sh "und wie weiter?}

  • ??? RBK0149E: Datei" blabla usw" existiert nicht.

    Die Datei blabla existiert bestimmt nicht in Deinem Backupverzeichnis :lol:

    Ich brauche schon die genaue Fehlermeldung ;) Besser noch das Debuglog. Das ist anonymisiert und das kannst Du hier per drag'n drop hochladen da hyle das freundlicherweise enabled hat.

  • Kann mir jemand hier ein Beispiel Pfad angeben.

    Es gibt ein Hilfstool für raspiBackup. raspiBackupDialog

    Code
    # Zu installieren mit folgenden Befehlen
    
    wget https://raw.githubusercontent.com/framps/raspiBackup/master/helper/raspiBackupDialog.sh
    chmod +x raspiBackupDialog.sh
    sudo mv raspiBackupDialog.sh /usr/local/bin

    Da läuft alles Dialoggeführt und du brauchst dir über Speicherort..... keine Gedanken machen.

    Du rufst einfach sudo /usr/local/bin/raspiBackupDialog.sh auf.

    Dann kannst du auswählen, ob du ein Backup erstellen/restoren willst....... Du kannst beim Restore das Backup aus einer Liste auswählen.....

    Probiere es einfach mal aus. Leichter geht es nicht.

  • So, ich habs soweit hinbekommen. Da ich mit einem Raspi zero am Testen bin sind zur Zeit alles Service am laufen. Der Grund dafür ist weil sich W-LAN trennt. Daher noch eine Frage. Welche Services darf ich nicht stoppen damit die Verbindung bestehen bleibt?

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!