Was ist der einfachste Weg zur unidirektionalen inkrementellen Synchronisierung eines auf einem Linux-System vorhandenen Ordners?
+1 für die Verwendung der Befehlszeile. +2 für die Verwendung von rsync (Scheint auf meinem System einige Probleme zu haben.)
Was genau sind deine Probleme mit rsync?
innaM vor 15 Jahren
3
Da "rsync" sehr wahrscheinlich die einfachste Antwort ist, erklären Sie, welche Probleme Sie damit haben. (Die Probleme können sich ohnehin auf jede andere Lösung auswirken.)
Telemachus vor 15 Jahren
5
Hinweis: Für die bidirektionale Synchronisierung können Sie verwenden unisono sowie csync .
+1, aber das war nur eine teilweise Antwort für mich. Wenn Sie `rsync` über ssh verwenden müssen, verwenden Sie` rsync -uav --delete -e ssh remoteuser @ remotehost: / remote / dir / this / dir / `
zelanix vor 10 Jahren
0
7
Robert Munteanu
csync ist ein Dateisynchronisierer, der speziell für Sie als normale Benutzer entwickelt wurde.
csync ist eine Library und liefert standardmäßig einen Befehlszeilenclient. Es ist ohne Server und ermöglicht die Synchronisierung über sftpoder samba.
Der Befehl `csync` wird vom ubuntu-Paket` csync-owncloud` bereitgestellt. (`sudo apt-get install csync-owncloud`` libcsync-plugin-sftp libcsync-plugin-smb` (falls Sie dies möchten)
ThorSummoner vor 9 Jahren
0
Dies führt also eine einmalige Synchronisation auf Anforderung durch. Ich habe keine Informationen gefunden, wie Sie dies zum Überwachen und kontinuierlichen Synchronisieren eines Verzeichnisses verwenden können.
ThorSummoner vor 9 Jahren
0
2
nik
So würde ich eine unidirektionale Synchronisierung mit bloßen Werkzeugen durchführen.
Zu Beginn tarieren Sie den gesamten Dateisatz und kopieren Sie sie an den Zielpunkt. Richten Sie auch eine Markierung im Basisverzeichnis ein.
touch /Source/base/directory/last-sync-time.txt
Jetzt möchten wir weiterhin von Quelle zu Ziel synchronisieren.
Beim nächsten Zeitfenster für die Synchronisierung vorwärts (von Quelle zu Ziel)
# The backup script cd /Source/base/directory tar cfj -N ./last-sync-time.txt backup.tar.bz2 . scp backup.tar.bz2 user@backup-server:/Backup/Directory/ touch /Source/base/directory/last-sync-time.txt rm -f backup.tar.bz2
Die -N ./filenameAnweisung tar soll nur Dateien archivieren, die geändert oder erstellt wurden, nachdem sie filenamegeändert / erstellt wurden.
Die Verwendung einer lokalen Referenz für die Zeit bestätigt, dass Sie keinen Fehler machen. Wenn aus irgendeinem Grund kein Backup erstellt wurde, wird das nächste Backup es ansammeln
Vorausgesetzt, Sie können das backup-serverimmer dann erreichen, wenn dieses Skript ausgegeben wird.
Um sicherer zu sein, können Sie Überprüfungen hinzufügen, um zu bestätigen, dass die Sicherung gespeichert wurde, und geben Sie dann den touchBefehl aus
Sie können auch Befehle einfügen, um die Backups zu erweitern, die sie am Zielpunkt vor den vorherigen Backups überlagern. Oder führen Sie inkrementelle tar.bz2Archive.
0
umetnic
I Verwenden Sie dieses kurze Skript zum Überwachen und kontinuierlichen Synchronisieren eines Verzeichnisses mit dem Remote-SFTP-Ordner.
#!/bin/sh dir1=/home/user/folder while inotifywait -qqre modify "$dir1"; do csync /home/user/folder sftp://remoteuser:remotepass@remoteaddress:remoteport/remotefolderpath done