Sicherung Dateien von Raspi auf NAS

  • Hallo Zusammen,


    ich bin momentan dabei mein Dokuwiki zu befüllen. Jetzt bin ich allerdings an dem Punkt angelangt, dass auch gerne mein Dokuwik sichern möchte.

    Da Dokuwiki mit Dateien arbeitet, sollte das Prinzipiell kein Problem sein.

    Problem ist nur, ich möchte auf mein NAS sichern. Allerdings habe ich mein NAS so eingestellt, dass die Festplatten nach 15 Min ohne Zugriff in den Standby gehen sollen.


    Jetzt ist die Frage, wenn ich auf den Pi mein NAS mounte, wird dann durchgehend die Verbindung gehalten, und die HDDs gehen nicht mehr in den Standby?

    Oder gibt es irgendeine elegante Lösung, dass ich die Dateien beispielsweise einmal in der Woche sichere und die HDDs trotzdem in den Standby gehen?


    Danke

  • Jetzt ist die Frage, wenn ich auf den Pi mein NAS mounte, wird dann durchgehend die Verbindung gehalten,

    Das solltest du einfach mal ausprobieren ;)

    Oder gibt es irgendeine elegante Lösung, dass ich die Dateien beispielsweise einmal in der Woche sichere und die HDDs trotzdem in den Standby gehen?

    Cronjob, mounten, sichern, unmounten wäre eine Möglichkeit ;)

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Cronjob, mounten, sichern, unmounten wäre eine Möglichkeit ;)

    Das muss ich wenn dann aber alles getrennt voneinander machen,

    Sollte die Sicherung noch nicht beendet sein, und ich unmounte, dann ist das sicher nicht so vorteilhaft.

    Cronjob wird denke ich nicht merken ob die Sicherung beendet ist oder nicht.


    Oder gibt es vielleicht fertige Programme?

  • Nun Du könntest in Deinem Backup-Script zuerst das NAS Laufwerk mounten,

    dann sichern,

    und anschliessend das NAS wieder unmounten

    Ich würde dafür rsync verwenden?

    rsync denke ich lässt sich über Cronjob relativ leicht lösen lassen.


    Wenn das ganze per Cronjob und Pyhton Skript geht, dann könnte ich das unmounten einbauen, wenn die Sicherung abgeschlossen ist.


    Die Frage ist nur ob das per Python-Skript gehen würde?

  • Cronjob wird denke ich nicht merken ob die Sicherung beendet ist oder nicht.

    cronjob schmeisst doch nur das Script an. Es gibt imho python implementierungen von rsync aber das sollte auch per bash gehen. rsync liefert doch nen Rückgabewert wenn es durch ist, dann erst wird unmounted.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Ich glaube wir haben aneinander vorbei gesprochen.


    Dass ein Cronjob nur ein Skript ausführt ist mir klar.

    Allerdings wenn ich per Skript das Mounten ausführen lasse,

    dann mit den nächsten Eintrag in Cronjob die Sicherung

    und als letzten Eintrag das Unmounten, dann kann es Zeitlich sein, dass ich während der Sicherung schon unmounte.

    Cronjob wartet ja nicht auf einen Rückgabe werden von einem Skript. Wie könnte man soetwas abfangen?


    Wenn das ganz per Python oder Bash gemacht wird, dann bringt der Rückgabewert natürlich den gewünschten Effekt.

    Dann muss ich mal schauen, ob ich das per Bash oder Python lösen kann.

  • Allerdings wenn ich per Skript das Mounten ausführen lasse,

    dann mit den nächsten Eintrag in Cronjob die Sicherung

    und als letzten Eintrag das Unmounten, dann kann es Zeitlich sein, dass ich während der Sicherung schon unmounte.

    Stimmt. Deswegen würdest Du es so auch nicht machen, sondern per cronjob ein Skript starten, das mountet, sichert und anschließend wieder unmountet.

  • Wieso sollte der NAS seine Platten nicht mehr nach 15 Min. in Standby schicken, wenn kein Zugriff mehr stattfindet? Oder denkt der NAS, da ist so ein RPi und nun mache ich was ganz anderes?! Das Standby ist ja eine Sache zwischen NAS und angeschlossenen HDs. Kopiere eine Datei auf dein NAS und warte 15 Minuten. Dann weisst du es.

  • In obiger Form willst du das evtl auch nicht haben. Wenn z.B. Job1 mountet und Job2 der rsync-Aufruf ist, würde rsync auch aufgerufen, wenn der Mount fehl schlägt - dumm, dein Backup ist auf der lokalen Platte im Mountpoint gelandet.

    Imho besser 1 Script zu erstellen, wie z.B. (grob):
    #!/bin/sh

    /bin/mount /was /wo || exit 126

    /usr/bin/rsync [options] src target

    /bin/umount /wo
    mail -s "Backup $(date +'%Y%m%d') success" foo@bar.de


    EDIT: ups, hyle war fixer


    Das /was beim mount kann man sich sparen, wenn /etc/fstab einen entsprechenden Eintrag aufweist.

    Ich würde statt auf rsync auf rsnapshot setzen (benutzt im Hintergrund auch rsync).

    Wenn du nichts zu sagen hast, sag' einfach nichts.


    Edited once, last by llutz ().

  • Hallo Zusammen,


    sorry das es hier in diesem Thema von meiner Seite nicht mehr weiter ging. Allerdings hatte ich am Wochenende genügend Zeit, das ganz mal zu testen.


    Meine Bedenken waren, wenn ich ein Netzlaufwerk mounte, genau genommen, wenn ich mein NAS Mounte, hatte ich die Befürchtung, dass meine HDDs nicht mehr "schlafen" gehen.

    Das konnte ich am Wochenende testen und bin zu dem Ergebnis gekommen, auch wenn ich den Mount bestehen lassen, gehen die HDDs schlafen, wenn kein Zugriff mehr ist.

    Somit ist kein mount und auch kein unmount mehr nötig.

    Es kann quasi immer gemountet bleiben.


    Ich habe mir auch meinen Befehl so gebaut, dass er für mich am besten sichert und zwar so:

    Code
    sudo rsync -av --delete /var/www/html/dokuwiki/ /mnt/nas-usb/Backup/Dokuwiki/ >> "/home/pi/backup_dokuwiki.log" &

    Da ich gerne 1 mal die Woche sichern würde, stellt sich mir die Frage, wie ich das am besten machen.


    Einfach nur einen Cronjob Eintrag?

    Das ganze in ein Bash Script?


    Ich habe davon leider sehr wenig Ahnung wie ich das ganze angehen könnte.

  • Datei für Cronjob "als root, jeden Montag früh, 00:10 Uhr" erstellen:

    sudo nano /etc/cron.d/wikibackup


    Inhalt (lange Zeile ohne Umbruch:

    Code
    # wikibackup wöchentliches Backup des Dokuwiki
    SHELL=/bin/sh
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    10 0 * * 1 root [ -d /mnt/nas-usb/Backup/Dokuwiki ] && /usr/bin/rsync -av --delete /var/www/html/dokuwiki/ /mnt/nas-usb/Backup/Dokuwiki/ >> /home/pi/backup_dokuwiki.log &

    Der Ausdruck in eckigen Klammer testet ob das Zielverzeichnis vorhanden ist. Wenn ja, Backup starten.

    Wenn du nichts zu sagen hast, sag' einfach nichts.


  • Solange du keine identischen Jobs in verschiedenen crontabs laufen hast, passiert da nichts. Das funktioniert, es gibt halt verschiedene Wege per cron etwas abzuarbeiten.

    Wenn du nichts zu sagen hast, sag' einfach nichts.