GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So synchronisieren Sie Dateien in zwei Richtungen mit Osync-Skript in Linux

Sie fragen sich vielleicht, warum brauche ich eine bidirektionale/bidirektionale Dateisynchronisierungslösung? Die terminalbasierte Natur von osync macht es zu einer idealen Dateisynchronisierungslösung, die in drei Modi ausgeführt werden kann:

  1. manuell
  2. über geplante Aufgaben
  3. über einen Daemon (wird ausgelöst, wenn neue Dateiänderungen auftreten)

Dieser zustandsbehaftete Synchronizer fungiert als rsync Verpackung. Osync wird als zustandsbehaftet zugeschrieben, da es nicht verpflichtet ist, die Zieldateien auf Änderungen zu überwachen. Dieses Attribut macht es auch agentenlos.

Zwischen zwei Läufen vergleicht osync Replikdateilisten. Diese Läufe können lokal-zu-lokal oder lokal-zu-entfernt sein. Die Lokal-zu-Lokal-Replikation dauert ungefähr 2 Sekunden, während die Lokal-zu-Remote-Replikation ungefähr 7 Sekunden dauert.

Osync-Funktionen

Prominente Highlights der Osync-Funktion:

  • Local-to-Local- und Local-to-Remote-Synchronisationsunterstützung.
  • Volle Skriptzeitkontrolle.
  • E-Mail-Benachrichtigungen
  • Läuft als Daemon oder nach Zeitplan
  • Verzeichnisüberwachung
  • Protokollierungseinrichtung
  • Bewältigt mehrere Synchronisierungsaufgaben über den Batch-Runner und fehlgeschlagene Synchronisierungsaufgaben über eine Option zum erneuten Ausführen
  • Szenarien fortsetzen, um die Fehlertoleranz zu handhaben
  • Erweiterte Attribute und POSIX-ACL-Synchronisation
  • Befehlsausführung für Vorher/Nachher-Läufe
  • Umgang mit mehreren Sicherungen und vorläufigen Löschungen

Wenn Sie eine schnelle Ausführung benötigen, sollten Sie einige der osync-Funktionen wie Speicherplatzprüfungen und Attributerhaltung deaktivieren. Ein Ziel/Initiator-Synchronisierungsschema ist auch unter osync anwendbar.

Ein bereits vorhandenes Ziel-/Initiator-Replikat wird durch Pidlocks vor mehreren gleichzeitigen Synchronisierungsprozessen geschützt. Das primäre Design von Osync verhindert, dass Benutzer-/Systemdaten gelöscht werden. Vorläufig gelöschte oder konfliktträchtige Dateien werden durch erstellte Backups bewahrt.

Installieren Sie Osync unter Linux

Eine stabile oder neueste Version von osync finden Sie auf Github. Sie müssen zuerst git installiert haben, bevor Sie das osync-Dateisynchronisierungstool von Github abrufen und installieren können.

Verwenden Sie eine der folgenden Installationsanleitungen gemäß Ihrer Linux-Betriebssystemverteilung.

Installieren Sie Osync in RHEL-basierten Distors

$ sudo yum install git
$ sudo git clone -b "stable" https://github.com/deajan/osync
$ cd osync
$ sudo bash install.sh

Installieren Sie Osync in Debian-basierten Distors

$ sudo apt install git
$ sudo git clone -b "stable" https://github.com/deajan/osync
$ cd osync
$ sudo bash install.sh

Installieren Sie Osync unter Arch Linux

$ sudo pacman -S git
$ sudo git clone -b "stable" https://github.com/deajan/osync
$ cd osync
$ sudo bash install.sh

Installieren Sie Osync unter OpenSUSE Linux

$ sudo zypper install git
$ sudo git clone -b "stable" https://github.com/deajan/osync
$ cd osync
$ sudo bash install.sh

Entfernen Sie beim Klonen von osync von Github den -b "stable" Option aus dem git clone-Befehl ruft den neuesten Entwickler-Snapshot von osync ab.

So verwenden Sie Osync unter Linux für die bidirektionale Dateisynchronisierung

Wie bereits erwähnt, gibt es drei Ansätze zur Verwendung von osync.

  1. Quick-Sync-Modus
  2. Konfigurationsdateimodus
  3. Daemon-Modus

Lokal-Lokal und Lokal-Remote-Dateisynchronisierung im Schnellsynchronisierungsmodus

Dieser Ansatz ist jedoch praktisch für Benutzer, die schnelle Synchronisierungen zwischen Verzeichnissen erreichen möchten. Für lokal zu lokal Verzeichnisse, beachten Sie die folgende osync-Syntax:

$ osync.sh --initiator="/path/to/directory1" --target="/path/to/directory2"

Als Beispiel Implementierung ist wie folgt:

$ sudo osync.sh --initiator="/home/dnyce/LinuxShellTips" –target="/home/dnyce/LinuxShellTips_Backup"

Für Lokal-zu-Remote -Verzeichnisse müssen Sie möglicherweise zuerst Ihren Computer für den passwortlosen SSH-Zugriff konfigurieren.

$ sudo ssh-keygen -t rsa 
$ sudo ssh-copy-id [email protected]
$ sudo ssh [email protected]

Die Local-to-Remote Quick Sync-Syntax lautet wie folgt:

$ osync.sh --initiator="/path/to/another/directory" --target="ssh://user@host/IP:22//path/to/directory2" 

Eine Beispielimplementierung würde wie folgt aussehen:

$ sudo osync.sh --initiator="/home/dnyce/LinuxShellTips" --target="ssh://[email protected]:22//home/ubuntu/linuxshelltips_remotesync"

Und schließlich…

Machen Sie sich keine Sorgen wegen osync beendet mit Warnungen , Es ist nur so, dass ich das Ping auf meinem Server deaktiviert habe. Ihr osync-Befehl kann jedoch die folgenden Befehlsoptionen enthalten, die Ihnen bei der Diagnose kritischer Fehler helfen.

--summary --errors-only --no-prefix

Zum Beispiel:

$ osync.sh --initiator="/path/to/another/directory"--target="ssh://user@host/IP:22//path/to/directory2" --summary --errors-only --no-prefix 

Konfigurieren eines Cron-Jobs zum Automatisieren der Dateisynchronisierung

Wir könnten den Quick Sync automatisieren Modusaufgaben durch Cronjobs.

$ sudo su
$ crontab -e

Das Hinzufügen der folgenden zwei Cron-Jobs für Local-to-Local- und Local-to-Remote-Verzeichnisse automatisiert unsere osync-Aufgaben.

 */5        *        *        *        * osync.sh --initiator="/home/dnyce/LinuxShellTips" –target="/home/dnyce/LinuxShellTips_Backup"
 */5        *        *        *        * osync.sh --initiator="/home/dnyce/LinuxShellTips" --target="ssh://[email protected]:22//home/ubuntu/linuxshelltips_remotesync"

Osync ist eine ideale Zwei-Wege-Synchronisationslösung für Local-to-Local- und Local-to-Remote-Verzeichnisse. Die von Ihnen erstellten Verzeichnissynchronisierungen sind ein perfekter Sicherungsplan für kritische Daten im Falle eines versehentlichen Löschens oder des Nachweises beschädigter Dateien.


Linux
  1. So verwenden Sie Rsync zum Synchronisieren neuer oder geänderter/geänderter Dateien in Linux

  2. So schreiben Sie Protokolldateien im RAM mit Log2ram unter Linux

  3. So erstellen Sie Sparse-Dateien in Linux mit dem Befehl „dd“.

  4. So suchen Sie nach Dateien mit Regex im Linux-Shell-Skript

  5. Wie beendet man das Linux-Terminal mit einem Python-Skript?

So teilen Sie Dateien lokal unter Linux mit NitroShare

So finden Sie Dateien über die Befehlszeile im Linux-Terminal

So benennen Sie Dateien über die Befehlszeile in Linux um

So sichern Sie Dateien und Verzeichnisse mit Rsync unter Linux

So kopieren Sie Dateien unter Linux mit dem CP-Befehl

So löschen Sie Dateien und Verzeichnisse mit der Linux-Befehlszeile