PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : rsync mit NFS check



zielscheibe
12.02.10, 11:37
Hallo NG,

ich habe mehrere Verzeichnisse per NFS gemountet und mache per rsync
eine "Kopie" auf die lokale Festplatte. Jetzt ist es aber vorgekommen,
dass durch einen Stromausfall nach dem Neustart der NFS nicht
eingehangen wurde und der rsync per cron die Daten "kopiert" hat.
Da aber --delete als Parameter gesetzt ist, wurden ALLE Daten gelöscht,
da ja im Verzeichnis durch das Fehlen des NFS-Mounts keine Daten
vorhanden waren. Wie kann ich sicherstellen, dass nur rsync ausgeführt
wird, wenn auch der NFS gemountet ist?

craano
12.02.10, 11:42
Ich würde in dem Verzeichnis, welches der Mount-Punkt ist, eine Kontrolldatei anlegen. Wenn die sichtbar ist, dann ist nichts gemountet.
Jetzt musst Du in einem kleine script nur noch prüfen, ob Du die Datei findest, wenn nicht, dann rsync losfeuern lassen, wenn doch, dann beende das script.

Grüße.
craano.

zielscheibe
12.02.10, 15:16
Ich hab an was in der Art von


test "ls -l | wc -l" -gt 5 && rsync ...

gedacht, aber das funktioniert nicht :(

drcux
12.02.10, 18:22
detlef@detlef-pc:~> [ "$(ls -A /home/detlef)" ] && echo "Not Empty" || echo "Empty"
Not Empty
detlef@detlef-pc:~> [ "$(ls -A /home/detlef/temp)" ] && echo "Not Empty" || echo "Empty"
Empty

BedriddenTech
12.02.10, 18:28
#!/bin/bash
MOUNTPOINT=/mnt/nfs
grep -q "^[^:]\+:/[^ ]\+ $MOUNTPOINT nfs4\? " /proc/mounts && rsync # ...

HTH.

drcux
12.02.10, 18:43
Zu prüfen, ob ein mount besteht, ist schlecht, der Server könnte kurz vorher ausgeschaltet worden sein, in /proc/mounts steht es aber trotzdem noch...

John W
12.02.10, 19:13
Sowas war zu einfach, oder?
[ -e /<Pfad>/FS_NOT_MOUNTED ] && rsync <Parameter>

drcux
12.02.10, 19:19
Nein, er hat die Lösung nur nicht verstanden... ;)

BedriddenTech
12.02.10, 21:46
Zu prüfen, ob ein mount besteht, ist schlecht, der Server könnte kurz vorher ausgeschaltet worden sein, in /proc/mounts steht es aber trotzdem noch...

Und was passiert dann?

Weniger polemisch: Für so Fälle existieren im NFS-Protokoll entsprechende Mechanismen. Laß das mal seine Arbeit tun. ;) Mit der Mount-Option "hard" z. B. gibts überhaupt keinen Abbruch, sondern der Klient probiert so lange, bis der Server (wieder) antwortet. Auch ansonsten gibt's eine Fehlermeldung, z.B. "stale NFS handle". Ich glaube, da muß man sich keine Gedanken machen.

Ich halte die Methode, nach einer Datei zu prüfen, ehrlich gesagt für fehleranfälliger.