NAS-Drive Mount in Bash-Script über crontab

Diskutiere NAS-Drive Mount in Bash-Script über crontab im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo liebe Leute, ich versuche seit Wochen ein rsync Bash-Script für die Sicherung eines Raspberry Pi's zum Laufen zu bringen und scheitere...

  1. #1 montharon, 04.06.2020
    montharon

    montharon Grünschnabel

    Dabei seit:
    04.06.2020
    Beiträge:
    1
    Zustimmungen:
    0
    Hallo liebe Leute,

    ich versuche seit Wochen ein rsync Bash-Script für die Sicherung eines Raspberry Pi's zum Laufen
    zu bringen und scheitere immer wieder am Einhängen der NAS-Freigabe für das Backup-Ziel.

    Am NAS habe ich das entstprechende Verzeichnis per NFS für die statische IP-Adresse des Pi's freigegeben.
    Ein Rechteproblem dürfte es nicht sein - habe per SSH die Rechte des Verzeichnisses am NAS überprüft.
    Der Owner des Verzeichnisses ist root und die UID der beiden Benutzer (Admin-User am Pi) und Adminstrator
    am NAS ist die gleiche...

    Zudem habe ich schon Backups ausgeführt, die ich manuell getriggert habe (selbes Bash-Script).

    Hier der entsprechende Auszug aus dem Script...

    readonly MOUNT_POINT='/mnt/backup'
    readonly LOG="${0}".log

    echo "SCHRITT 3" >> "${LOG}"
    echo "Pruefe Moint-Point..." >> "${LOG}"

    if ! mountpoint -q "${MOUNT_POINT}"; then
    # Wenn nicht, versuche es einzuhaengen
    echo "Backup-Verzeichnis ${MOUNT_POINT} einhaengen." >> "${LOG}"
    if ! mount -t nfs 192.168.0.10:/Backup/Pi3A "${MOUNT_POINT}"; then
    echo "Beim Einhaengen ist ein Fehler aufgetreten. Die Sicherung wird abgebrochen!" >> "${LOG}"
    exit 5
    else
    echo " Backup-Verzeichnis erfolgreich eingehaengt." >> "${LOG}"
    fi
    else
    echo "${MOUNT_POINT} ist bereits eingehaengt." >> "${LOG}"
    fi


    Ich vermute, dass es mit der Tatsache zu tun hat, dass das NAS die Festplatten in den Ruhemodus versetzt.
    Wenn ich nämlich das Script manuell in der Konsole ausführe, dann funktioniert alles ohne Probleme.

    Da ich dachte, dass ich den Mount-Befehlt als Root-User absetzen muss, habe ich den entsprechenden
    Cronjob in den crontab des Root-Users, also mittels sudo crontab -e geschrieben.

    Der Cron-Job wird auch entsprechend gestartet - ich sehe das am Zeitstempel des angelegten Logfiles.
    Zu diesem Zeitpunkt dürften sich das NAS bzw. die HDDs im Ruhemodus befinden.

    Vielen Dank für jede Hilfe!
    montharon
     
  2. Anzeige

    Anzeige

    Wenn du mehr über Linux erfahren möchtest, dann solltest du dir mal folgende Shellkommandos anschauen.


    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Basher

    Basher Grünschnabel

    Dabei seit:
    20.09.2020
    Beiträge:
    1
    Zustimmungen:
    0
    Ich habe ein Asus Tinkerboard S mit 16GB eMMC-Speicher und betreibe es ohne µSD-Karte.
    Ein USB-Stick ist eingesteckt mit 32GB zum sichern eines vollen eMMC-Images via dd-Befehl.
    Dieser Mini-Rechner ist für uns zuhause der lokale DNS; es läuft der Werbefilter "pihole" darauf.

    Da ich extrem viel selbst programmiere über BASH-Shellskripte und dabei Perfektion anstrebe,
    ergeben sich täglich kleine Änderungen an den Skripten. Daraus ergibt sich die Notwendigkeit
    einer zuverlässigen, täglichen Sicherungsroutine. Ein Bash-Skript kümmert sich darum.

    Ich habe die tägliche Sicherungsaufgabe bei mir wie folgt gelöst:

    Ein Bash-Shellskript namens "wol" kümmert sich um das wecken des als ersten Parameter ${1}
    übergebenen Gerätes. Wenn das Gerät in der Liste steht, wird die IP und die MAC in die Variablen
    geladen und das Magic-Paket via etherwake auf den Weg gebracht.
    Wird das Gerät nicht in der Liste gefunden, wird die geräteeigene arp-Liste mittels Kombination aus
    grep und awk-Kommando durchsucht und bei eindeutigem Treffer die IP und MAC ausgefiltert.
    Das aufwecken wird begleitet mit sekündlichen Pings, die keinesfalls länger als 1 Sekunde dauern.
    Nach dem erreichen des Gerätes wird nach einer kurzen Wartezeit von 5 Sekunden der mount-Befehl
    durchgeführt, der dann auch erfolgreich beendet wird. Exit-Status des wol-Skriptes : 0.

    Ein Bash-Shellskript namens "backup.xxx" liest die "backup.xxx.conf" ein und in dieser stehen die
    anzulegenden Tagesordner, die Wurzelverzeichnisse auf dem NAS und die zu sichernden Dateien.
    Das Skript prüft den mount-Status und die Erreichbarkeit der Wurzelverzeichnisse, legt die Tagesordner
    an und prüft deren Verfügbarkeit, bevor es jede einzelne Datei kopiert und den Erfolg/Misserfolg im
    Logfile backup.xxx.log in /var/log dokumentiert.

    2 Befehle stehen hierfür in der crontab [systemweite crontab mit "crontab -e"] ;

    der erste um 5 vor 12 löst ein MagicPaket an das NAS aus (WOL=WakeOnLan), um es zu wecken,
    das Script pingt es auch jede Sekunde danach an um festzustellen, wann es wach ist und
    nach einer Wartezeit von 5 Sekunden mountet es das NAS daraufhin jeden Tag erfolgreich.
    (Bootzeit des NAS liegt bei ca. 86-105 Sekunden je nach Tagesform; ist es bereits wach, ist die Aufgabe ruckzuck erledigt)

    Der zweite Crontab Befehl um 2 vor 12 prüft den MOUNT-Status des NAS, legt die Tagesordner an und sichert dann darin.
    Jede Aktion wird dabei über den Rückgabewert überwacht und Erfolg/Misserfolg in einem Logfile dokumentiert.
    Am Ende der Sicherungsaktion wird das Logfile mit ANSI-Farbcodes dann nach HTML konvertiert und mir per eMail zugesandt.
    So habe ich jedezeit die Kontrolle über die einwandfreie Funktion der Sicherungsaufgabe.
     
Thema:

NAS-Drive Mount in Bash-Script über crontab

Die Seite wird geladen...

NAS-Drive Mount in Bash-Script über crontab - Ähnliche Themen

  1. Mount einer NAS-Platte

    Mount einer NAS-Platte: Hallo, wenn eine gemountete NAS-Platte Probleme hat, ist das Ausführen des Kommandos "df" nicht mehr möglich. Die Präsenz dieser NAS-Platte ist...
  2. beliebige USB-Platte rw auto-mounten

    beliebige USB-Platte rw auto-mounten: Hi, ich muss öfter von unterschiedlichen (!) einer auf eine anderen USB-Platte/Stick etwas kopieren. Centos 6 auto-mountet jede beliebige...
  3. win7 share gemounted gehört aber root

    win7 share gemounted gehört aber root: Hallo, ich mounte (unter Debian jessie) eine Win7 Freigabe in einer Domäne mit sudo mount.cifs //ip_adresse/freigabe /mount_verzeichnis -o...
  4. Kleinigkeiten für Euch, mich nicht :-) pkg_add ; DVD rw mounten

    Kleinigkeiten für Euch, mich nicht :-) pkg_add ; DVD rw mounten: Hallo, ich habe 2 Problemchen. Ich kann nichts mehr installieren. Ich brauche aber unbedingt ein Brenn-Programm. Ein schönen Partitionierer usw....
  5. partition/mount point wo liegt das directory?

    partition/mount point wo liegt das directory?: Hallo zusammen! Wahrscheinlich eine 'ne blöde Frage: wie bekomme ich heraus, auf welcher Partition bzw. mount point ein Verzeichnis liegt....
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden