SD-Card im laufendem Betrieb von einem RPi auf ein beliebiges NAS per Netzwerk sichern

  • Komplettsicherung der SD-Card eines beliebigen RPi’s auf ein beliebiges NAS im laufendem Betrieb



    ...vielleicht ist es ja für den einen oder anderen von euch eine nette Hilfe, da alles im laufendem Betrieb funktioniert.


    Das zurückspielen eines Backups auf die SD-Card muss natürlich manuell und händisch gemacht werden 8o



    ACHTUNG: Es wird IMMER das komplette SD-Card Volumen gesichert.



    01. Es kann sowohl per CIFS als auch per NFS gesichert werden

    02. Die Speicherung erfolgt über das Netzwerk, egal ob LAN oder WLAN

    03. Die Zeitpunkte der Sicherung sind in einem „cronjob“ auf dem Pi definiert

    Ich habe hier für mich den 1. und 15. des Monats definiert, da ja das Monatsende variiert.

    04. Die Anzahl der gespeicherten Backups ist in der „backup.sh“ definiert mit „BACKUP_ANZAHL“

    05. Nach erreichen der „BACKUP_ANZAHL“ auf dem NAS werden die ältesten gelöscht

    06. Das kann man natürlich ändern auf 3 oder auf 10, wie man will....

    07. Die Sicherung erfolgt durch eine Datei und diese wird als ausführbare Datei (backup.sh) auf dem Pi abgelegt

    08. Dies erfolgt unter „/home/pi“, also wechselt man dorthin mit

    Code
    cd /home/pi/

    08. Und erstellt die zunächst leere Datei „backup.sh“ mit

    Code
    nano backup.sh

    09. Dann kopiert man den Inhalt der beigelegten Varianten (CIFS oder NFS) dort hinein -> per copy and paste

    10. Nachdem sie ausführbar gemacht wurde mit

    Code
    chmod +x backup.sh

    11. wird sie zu „/usr/local/bin“ verschoben mit

    Code
    sudo mv /home/pi/backup.sh /usr/local/bin/

    12. Zum Abschluss muss noch ein Verzeichnis „/mnt/nas“ erstellt werden (oder was beliebiges, muss halt nur in der „backup,sh“ mit „BACKUP_PFAD“ übereinstimmen) - dies macht man mit

    Code
    sudo mkdir /mnt/nas

    13. Nun sollte man den CRONJOB auf dem Pi anlegen mit

    Code
    sudo crontab -e

    14. Hier am Ende eintragen und dann mit ctrl+x beenden und speichern

    Code
    0 3 1 * * /usr/local/bin/backup.sh > /dev/null
    0 3 15 * * /usr/local/bin/backup.sh > /dev/null


    Der Cronjob wir also bei mir immer um 03:00 Uhr Nachts gespeichert (im laufendem Betrieb) und zwar am 1. und 15. jeden Monats


    Danach den RPi nochmal zum Spaß und zur Sicherheit neu booten und gemütlich zurücklehnen. Jetzt werden die lästigen Komplettsicherungen der SD-Card automatisch durchgeführt. Bei mir läuft das schon seit mehr als einem Jahr sehr stabil, auch von mehreren RPis auf ein Synology-NAS. Die RPis sind sowohl per LAN als auch WLAN verbunden. Natürlich habe ich (bei mehreren RPis) auf der NAS unter "NetBackupPi" weitere Verzeichnisse angelegt und jeder RPi speichert jeweils in SEIN Verzeichnis. Jeder RPi hat also eine spezielle "backup.sh" und die Zeiten im Cronjob sind auch anders.


    Viel Spaß



    Zum Schluss das wichtigsten, die Varianten der "backup.sh"


    für NFS :

    für CIFS:


  • z-smoker

    Hat den Titel des Themas von „SD-Card im laufendem Betrieb von einem RPi auf ein beliebiges NAS sichern (komplett) per Netzwerk“ zu „SD-Card im laufendem Betrieb von einem RPi auf ein beliebiges NAS per Netzwerk sichern“ geändert.
  • Kurze Frage funktioniert das mit jeder Platte die im Netzwerk hängt?

  • Du brauchst halt eine eindeutige IP-Adresse inkl. PFAD um zu definieren wo das Komplett-Backup abgelegt werden soll.

    Wenn dem so ist, einfach die Werte in der "backup.sh" anpassen und ausprobieren.


    Script-Datei manuell auf dem Raspberry aufrufen (unabhängig vom cronjob):

    Code
    sudo /usr/local/bin/backup.sh
  • Du brauchst halt eine eindeutige IP-Adresse inkl. PFAD um zu definieren wo das Komplett-Backup abgelegt werden soll.

    Wenn dem so ist, einfach die Werte in der "backup.sh" anpassen und ausprobieren.


    Script-Datei manuell auf dem Raspberry aufrufen (unabhängig vom cronjob):

    Code
    sudo /usr/local/bin/backup.sh

    Also eine IP Adresse hat meine WD ja logischerweise eine.

    Was muss ich dann unter Pfad verstehen?


    Was ist der Unterscheid der beiden Varianten, bzw wann muss welche verwendet werden?

  • Egal ob du per CIFS oder NFS (was halt deine NAS oder WD kann) musst du einen Pfad angeben, wohin auf deinem Speichergerät die Backupdatei abgelegt werden soll. Dieser Pfand muss natürlich auch auf deinem Medium vorhanden sein (alle Verzeichnisse/Ordner müssen bereits existieren) oder vorher angelegt werden. Ja nach NAS oder WD ist dieser Pfand spezifisch. Meist ist es /volume1/Ordner/Ordner...


    Bei NFS gehts schneller und stabiler und es muss keine "user" und "password" definiert werden, da die Zugriffserlaubnis ja auf der NAS definiert wird (also welche IP darf dort schreiben/lesen usw.). CIFS können eigentlich alle Systeme.


    Um es dann auch gleich zu testen, kann man die "backup.sh" auch manuell auf dem Raspberry per Konsole sofort starten:

    Code
    sudo /usr/local/bin/backup.sh
  • Kann man das ausfindig machen was die WD kann also sprich CIFS oder NFS?


    Demnach muss vorher ein Ordner angelegt werden auf der WD und das wäre dann der Pfad.

    Also in meinem Beispiel wäre das dann Ort, richtig?

    Bilder

  • Sorry - ich hab 'ne Synology und keine Ahnung von deiner WD. Aber schau doch einfach mal in die Steuerungsoberfläche deiner WD nach. Dort legst du ja auch im Normalfall die Hauptverzeichnisse an. Hier gibt es bestimmt einen Menüpunkt "Einstellungen" oder "Dateidienst" oder so ähnlich. CIFS ist ein Dialekt von SMB und das können alle Systeme.


    Ich würde hier möglichst kurze Ordnerbezeichnungen anlegen und bitte einfache nur Namen (also nur ein Wort, da Leerzeichen zwischen Wörter manchmal Probleme verursachen, also deshalb:


    /Volume/SmartHome/Backups/

  • Okay, so wirklich viele Einstellungsmöglichkeiten sind bei der WD My Cloud Home nicht gegeben.

    Da die WD ja eigentlich keine wirkliche NAS ist soviel ich weiß, darum war ja Anfangs meine Frage ob das mit jeder Platte geht die im Netzwerk hängt.

  • Siehe #3

    ... deshalb habe ich auch geschrieben für NAS

  • Ich habe im Netzwerk eine Time Capsule. Würde es denn damit auch fumktionieren?

  • Ich habe im Netzwerk eine Time Capsule. Würde es denn damit auch fumktionieren?

    So nicht, weil die Time Capsule weder die Netzwerkprotokolle NFS noch CIFS kann. Man könnte den Umweg über einen Mac machen (was gehen soll, mir aber nicht gelungen ist) oder am besten einfach eine externe Platte an den Raspi anschließen.

  • Hi z-smoker


    erstmal vielen Dank für das Skript. Das hat bei mir aufs erste Mal funktioniert.

    Ich hab ein NAS und die NFS Variante ausgeführt.


    ALso nach dem Ausführen kommt folgende Meldung:



    ------------------------------------------------------

    [email protected]:/# sudo /usr/local/bin/backup.sh

    31914+1 Datensätze ein

    31914+1 Datensätze aus

    31914983424 bytes (32 GB, 30 GiB) copied, 761,483 s, 41,9 MB/s

    /mnt/nas /

    rm: fehlender Operand

    „rm --help“ liefert weitere Informationen.

    /

    [email protected]:/#


    ------------------------


    ich habs manuell ausgeführt.


    Vielleicht ist da noch ein Fehler drin - also er ist bei mir die erste SIcherung welche

    den namen hat: Sicherung-20220918.img angelegt worden mit instgesamt 31 GB

  • rm: fehlender Operand

    „rm --help“ liefert weitere Informationen.

    Die Fehlerbehandlung des Skripts ist hier nicht so gut. Der Fehler tritt auf, wenn Backups, die älter als BACKUP_ANZAHL sind, gelöscht werden sollen. Solche Backups existieren bei dir aber nicht. Die Meldung wird verschwinden, sobald du ältere Backups hat.

  • Danke


    Ich hab mal die gestrichen Sicherung auf meine Sd-Card zurückgespielt. Backups soll mal ja testen.

    Es hat wunderbar funktioniert.


    Danke Roger


    Hallo zusammen.


    vielleicht weiß jemand wie ich 2 Verzeichnisse auf ein Synology-Nas copieren kann. (von einen Raspi4)

    Es handelt sich um diese beiden Verzeichnisse:


    /var/lib/homebridge/backups


    Bisher habe ich mit dem script von sschuste diese dateien auf Drop-Box gesichert


    Homebridge-Backup auf die Dropbox


    da ich ja ein nas besitze könnte ich diese Verzeichnisse auch auf nas abspeichern.


    Nur wie mache ich das ?

    Weiß jemand Rat?


    Danke Roger

    Einmal editiert, zuletzt von DJay () aus folgendem Grund: Ein Beitrag von Roger mit diesem Beitrag zusammengefügt.

  • Es handelt sich um diese beiden Verzeichnisse:


    /var/lib/homebridge/backups

    Das ist nur ein Verzeichnis.


    Beispiel: die zwei Verzeichnisse /var/lib/homebridge/backups und /home/pi werden kopiert mit dem Befehl

    cp -a /var/lib/homebridge/backups /home/pi /mnt/nas


    wobei

    • /var/lib/homebridge/backups das eine Verzeichnis ist, das du kopieren willst,
    • /home/pi das andere Verzeichnis ist, das du kopieren willst,
    • /mnt/nas das Zielverzeichnis ist, wohin die beiden Verzeichnisse kopiert werden sollen.

    Du kannst auch mehr als zwei Verzeichnisse Kopieren. Die Pfade zu den Verzeichnissen werden einfach durch ein Leerzeichen getrennt. Ganz am Ende des Befehls steht das Zielverzeichnis.

  • Hi ,


    nach langen suchen hab ich nun in einem anderen Forum eine Methode gefunden wie man Dateien oder Verzeichnissse auf NAS kopieren kann.


    Erstens muss man auf dem Raspi das Programm sshpass installieren


    apt install sshpass


    angenommen auf dem Synology-Nas existiert der User: "nasusr" das zugehörige Passwort lautet: "passnas"

    danach den Befehl auf dem Raspi ausführen


    sshpass -p "passnass" scp -r /var/lib/homebridge/backups [email protected]:/volume1/Sicherung/#Raspi/Homebridge


    Das Verzeichnis : backups wird angelegt, sofern nicht vorhanden, andernfalls wird das überschrieben


    --------


    Man kann das ganze auch mit einem Passwortfile file ausführen


    sshpass -f "/home/pi/pwfile" scp -r /var/lib/homebridge/backups [email protected]:/volume1/Sicherung/#Raspi/Homebridge


    leider weiß ich nicht wie mann das Passwortfile anlegen muss - vielleicht weiss das jemand.



    Danke


    Roger


    to whom it concerns