Wie archiviere ich ein Verzeichnis automatisch?

47

Ich möchte eine einseitige Synchronisierung durchführen.

Ich habe Folder Aauf meinem Computer, der ständig mit Inhalten aktualisiert wird.
Eine andere Folder Bwird für Sicherungszwecke verwendet, die sich auf einer externen Festplatte befinden.

Was ich jetzt erwarte, ist, dass alles, was in Ordner A vorhanden ist, in Ordner B abgelegt wird. Allerdings soll etwas, das in B und NICHT in A "" vorhanden ist, NICHT nach A "" kopiert werden.

Kurz gesagt, der Sicherungsordner kopiert möglicherweise alles aus dem Quellordner, es sollte jedoch nichts aus dem Sicherungsordner in den Quellordner kopiert werden.

Bhavesh Diwan
quelle
Das ist keine Synchronisation ...
Braiam
@Braiam wie heißt es dann? Ich konnte mir kein Wort einfallen lassen wie das OP. Wenn Sie es wissen, sagen Sie es bitte.
Jo Smo
@JoSmo kopieren? Archiv? Backup?
Braiam
@Braiam danke, jetzt fühle ich mich dumm für die Frage. : D
Jo Smo

Antworten:

63

Klingt nach einer perfekten Aufgabe für rsync

sudo rsync -az /path_to/A /path_to/B

-a Archivierungsmodus (impliziert rekursives Kopieren von Symlinks als Symlinks, Beibehalten von Besitzer-, Änderungszeiten-, Gruppen-, Besitzer-, Spezial- und Gerätedateien)

-z komprimiert die Daten

Wenn Sie in A gelöschte Dateien aus Dateien in B entfernen möchten, verwenden Sie die --deleteOption

Weitere Informationen finden Sie unter:

https://help.ubuntu.com/community/rsync

Sie können Rsync von Cron ausführen

sudo crontab -e

Fügen Sie eine stündliche Aufgabe hinzu

@hourly rsync /path_to/A /path_to/B

https://help.ubuntu.com/community/CronHowto

Panther
quelle
7
Befinden sich Ordner in Ordnern, müssen Sie die Option -r verwenden.
John S Gruber
2
Ich bin ein bisschen spät dran, aber um das Synchronisationsskript auszuführen, wenn die Festplatte angeschlossen ist, solltest du udev verwenden. Schauen Sie sich diese Frage vor einiger Zeit an. askubuntu.com/questions/25071/…
Jackweirdy
1
@JohnSGruber die Option -a impliziert rekursiv, ich werde die Antwort bearbeiten, um darauf hinzuweisen
Tomas
1
Wenn sich die Dateien auf demselben Computer befinden, -zverlangsamen Sie einfach den Prozess
Postadelmaga
1
@JoSmo - askubuntu.com/questions/476041/… und askubuntu.com/questions/609968/… und man rsync und stellen Sie bei Bedarf eine neue Frage, anstatt in Kommentaren nachzufragen.
Panther
15

Ich würde vorschlagen, Rsync für diesen Zweck zu verwenden. Rsync ist extrem schnell, stabil und vielseitig. Eine gute Einführung finden Sie unter http://help.ubuntu.com/community/rsync

Wenn Sie möchten, gibt es ein optionales grafisches Frontend: grsync

 sudo rsync -azv --exclude 'dir1' /home/path/folderA/ /home/path/folderB

Der obige Befehl kopiert von Ordner A nach Ordner B mit Ausnahme von Verzeichnis 1. Die Flaggen sind

-a preserves time stamps
-z is to enable compression
-v verbose

Es stehen noch viele weitere Optionen zur Verfügung.

JIm
quelle
8

Ich fand Unison immer sehr hilfreich. Es hat eine textbasierte oder GUI-basierte Oberfläche und eine ganze Reihe von Optionen, um es nach Ihren Wünschen anzupassen (mit ein wenig Fingerspitzengefühl). Es dauert ziemlich lange, bis die erste Synchronisierung durchgeführt ist, aber danach ist sie brillant. Sie können es in eine Richtung synchronisieren lassen, wie Sie möchten, aber das wird so ziemlich automatisch geschehen. Es kann auch aus dem Backup gelöscht werden oder nicht, wie Sie möchten.

Möglicherweise finden Sie auch Probleme mit Berechtigungen, die im Ubuntu-Dateiformat unterstützt werden, möglicherweise jedoch nicht auf der externen Festplatte (je nachdem, ob die externe Festplatte in einem Windows-Computer verwendet wird, ist dies möglicherweise eine gute Sache) Sie möchten möglicherweise ohne die Berechtigungen synchronisieren.

Wie auch immer, das Schöne ist, dass es mit dem Tutorial relativ einfach ist, es einmal einzurichten, und danach ist es eine GUI-Oberfläche, wann immer Sie wollen.

Hier einige Informationen dazu: http://www.ubuntugeek.com/unison-file-synchronization-tool.html

Und hier ist das Tutorial: http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#tutorial

Dr. Xorile
quelle
4
rsync -avPr --ignore-existing /home/username/Research/ /path/to/other/folder/on/hdd/

Dadurch werden nur die Daten synchronisiert und kopiert, die in der nicht vorhanden sind /other/folder/on/hdd/

LiebeN
quelle
2

Ich bin mit den anderen Antworten einverstanden, die Sie in rsync im Terminal oder den Schnittstellen Grsync , luckyBackup , Conduit oder dem berühmten Unison verwenden können .

Eine weitere großartige App ist Krusader (ein Twin-Panel-Dateimanager für KDE). Im Menü Extras finden Sie "Verzeichnisse synchronisieren", was sehr nützlich ist.

In letzter Instanz können Sie Wine und einen weiteren großartigen Doppelfenster-Dateimanager wie Total Commander installieren .

Wie auch immer, Sie haben viele Optionen und alle sind im Ubuntu Software Center verfügbar.

Raúl F. Castro S.
quelle
1

Ich würde Conduit für die einfache Synchronisation empfehlen. Es ist das Softwaresystem verfügbar. Es macht genau das, wonach Sie suchen

Jasonwert
quelle
0

Es gibt ein recht praktisches Shell-Tool mit dem Namen rsnapshot - http://www.rsnapshot.org/ - Dateisystem-Snapshot-Dienstprogramm zum Erstellen von Sicherungen von lokalen und fernen Systemen. Mit rsync und festen Links können mehrere vollständige Dateisystemsicherungen sofort verfügbar gehalten werden. Mach es einfach sudo apt-get install rsnapshotund überprüfe esinfo rsnapshot

user1180249
quelle
0

Sie können Dateien in zwei Verzeichnissen synchronisieren, indem Sie:

rsync -rv /path/to/directory1/ /path/to/directory2

Dadurch rsync -rv /path/to/directory1 /path/to/directory2schaffen wird directory1innen directory2, wie dies/path/to/directory2/directory1/[files]

Mit dem -nSchalter können Sie trocken laufenrsync -rnv /path/to/directory1/ /path/to/directory2

Referenz: https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories-on-a-vps

subhojit777
quelle
0

Wenn Sie eine grafische Benutzeroberfläche auf einem hoch konfigurierbaren System benötigen, probieren Sie FreeFileSync aus. Siehe zum Beispiel: http://linuxnorth.wordpress.com/2011/11/29/file-and-folder-synchronization/ Insbesondere möchten Sie die Option "Aktualisieren" für die Synchronisierung verwenden, mit der neue oder aktualisierte Dateien kopiert werden rechter Ordner ", dh in einer Zwei-Fenster-Anzeige vom linken Ordner in den rechten Ordner kopieren.

CentaurusA
quelle