staging.inyokaproject.org

Rsync nach Veränderung von Datei aufführen

Status: Ungelöst | Ubuntu-Version: Ubuntu 18.04 (Bionic Beaver)
Antworten |

Fabraptor

Anmeldungsdatum:
15. Mai 2017

Beiträge: 46

Hallo meine Lieben.

Ich möchte gerne mein Home Ordner auf eine Externe Festplatte backupen. Dazu möchte ich mir ein Script schreiben was den Ordner überwacht und was nach jeder Veränderung von einer Datei ein Befehl mit Rsync aufführt?

Hat jemand eine Idee wie ich das bewerkstelligen kann?

Liebe Grüße

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

Fabraptor schrieb:

Ich möchte gerne mein Home Ordner auf eine Externe Festplatte backupen. Dazu möchte ich mir ein Script schreiben was den Ordner überwacht und was nach jeder Veränderung von einer Datei ein Befehl mit Rsync aufführt?

Hat jemand eine Idee wie ich das bewerkstelligen kann?

Wenn Du sowieso rsync benutzt, dann würde ich vielleicht regelmäßig (z.B. alle 15 Minuten) einen Transfer laufen lassen. rsync kann ja selber feststellen, welche Dateien sich geändert haben. Der Vergleich ist allerdings langsamer als der folgende Ansatz, weil dafür Vergleich mit dem Zielsystem nötig ist.

Ansonsten macht man so etwas mit z.B. mit inotifywait. Hier ein Ausschnitt aus einem Script, das ich mal geschrieben habe:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
cd source/dir

echo "Waiting for files in $PWD ..."

inotifywait -mrqe close_write --format '%w%f' . | while IFS= read -r f; do
  if [ -f "$f" ]; then
    echo "<<<<: $f -> $target"
    mv -i "$f" "$target"
    echo ">>>>: $f -> $target"
  fi
done

Statt des mv würdest Du dann Deinen rsync oder einfacher ein cp -a einbauen. Problem mit diesem Ansatz ist, dass es ein Systemlimit für die Anzahl der Überwachungen für inotify gibt, das bei einem Verzeichnis mit vielen Dateien leicht überschritten werden kann.

Du könntest natürlich auch ein Btrfs-Dateisystem mit zwei Devices anlegen und spiegeln lassen (RAID1).

Stephan_H

Avatar von Stephan_H

Anmeldungsdatum:
18. September 2012

Beiträge: 187

Fabraptor schrieb:

Hallo meine Lieben.

Ich möchte gerne mein Home Ordner auf eine Externe Festplatte backupen. Dazu möchte ich mir ein Script schreiben was den Ordner überwacht und was nach jeder Veränderung von einer Datei ein Befehl mit Rsync aufführt?

Hat jemand eine Idee wie ich das bewerkstelligen kann?

Liebe Grüße

Ich bin (noch) nicht kompetent genug, ein Skript zu schreiben. Daher habe ich ãhnliche Anliegen auf meinen Rechnern bisher mit Cronjobs bearbeitet. Funktioniert zuverlässig, allerdings wird‘s komplex, wenn eine SSH Anmeldung zu einem entfernten Rechner eingebaut werden soll (dann muß wohl mit automatischer Authentifizierung per vorab hinterlegten Schlüsseln gearbeitet werden.). Wenn die externe Festplatte nur gelegentlich angeschlossen ist, könnte vielleicht mit anachron gearbeitet werden (inwieweit man da die /etc/fstab berücksichtigt muß, weiß ich allerdings nicht).

Gruß
Stephan

Antworten |