GNU/Linux >> Znalost Linux >  >> Linux

Jak obousměrně synchronizovat soubory pomocí skriptu Osync v Linuxu

Možná se ptáte sami sebe, proč potřebuji řešení pro obousměrnou/obousměrnou synchronizaci souborů? Terminálový charakter osync z něj dělá ideální řešení synchronizace souborů, které lze spustit ve třech režimech:

  1. ručně
  2. prostřednictvím naplánovaných úloh
  3. prostřednictvím démona (spouští se, když dojde k novým změnám v souboru)

Tento stavový synchronizátor funguje jako rsync obal. Osynchronizace je přiřazen jako stavový, protože není povinen monitorovat změny v cílových souborech. Díky tomuto atributu je také bez agenta.

Mezi dvěma běhy osync porovná seznamy souborů replik. Tyto běhy mohou být místní-místní nebo místní-vzdálené. Spuštění replikace z místního na místní trvá přibližně 2 sekundy, zatímco spuštění replikace z místní na vzdálenou přibližně 7 sekund.

Funkce Osync

Hlavní přednosti funkce Osync:

  • Podpora synchronizace Local-to-Local a Local-to-Remote.
  • Úplná kontrola času skriptu.
  • E-mailová upozornění
  • Spuštění jako démon nebo podle plánu
  • Monitorování adresářů
  • Zařízení pro protokolování
  • Zvládá více úloh synchronizace prostřednictvím dávkového programu a neúspěšné úlohy synchronizace prostřednictvím možnosti opětovného spuštění
  • Obnovte scénáře, abyste zvládli odolnost proti chybám
  • Rozšířené atributy a synchronizace POSIX ACL
  • Spuštění příkazu před/po spuštění
  • Zpracování vícenásobných záloh a měkkých mazání

Pokud potřebujete rychlé spuštění, možná budete chtít zakázat některé funkce osynchronizace, jako je kontrola místa na disku a zachování atributů. Schéma synchronizace cíle/iniciátoru je také použitelné v rámci osync.

Předem existující replika cíle/iniciátoru je chráněna před několika souběžnými synchronizačními procesy prostřednictvím pidlocků. Primární design Osync mu brání ve smazání uživatelských/systémových dat. Měkká odstranění nebo konfliktní soubory jsou zachovány prostřednictvím vytvořených záloh.

Nainstalujte Osync v Linuxu

Stabilní nebo nejnovější verze osync najdete na Github. Nejprve musíte mít nainstalovaný git, než budete moci načíst a nainstalovat nástroj pro synchronizaci souborů osync z Github.

Použijte jednu z následujících instalačních příruček podle vaší distribuce operačního systému Linux.

Nainstalujte Osync do distorů založených na RHEL

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

Nainstalujte Osync do Distors založených na Debianu

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

Nainstalujte Osync v Arch Linuxu

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

Nainstalujte Osync v OpenSUSE Linux

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

Při klonování osync z Githubu odstraňte -b "stable" volba z příkazu git clone načte nejnovější vývojový snímek osync.

Jak používat Osync v Linuxu pro obousměrnou synchronizaci souborů

Jak již bylo zmíněno, existují tři přístupy k použití osync.

  1. Režim rychlé synchronizace
  2. Režim konfiguračního souboru
  3. Démonský režim

Místně-místní a místní-vzdálená synchronizace souborů pomocí režimu rychlé synchronizace

Tento přístup je však vhodný pro uživatele, kteří chtějí dosáhnout rychlé synchronizace mezi adresáři. Pro local-to-local adresářů, zvažte následující syntaxi osynchronizace:

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

Příklad implementace je následující:

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

Pro místní až vzdálené adresářů, možná budete muset nejprve nakonfigurovat váš počítač pro přístup bez hesla SSH.

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

Syntaxe rychlé synchronizace z místa na vzdálenou je následující:

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

Příklad implementace by vypadal takto:

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

A nakonec…

Nedělejte si starosti s osynchronizací ukončenou s varováními , Jde jen o to, že jsem na svém serveru zakázal ping. Váš příkaz osync však může obsahovat následující možnosti příkazu, které vám pomohou diagnostikovat kritické chyby.

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

Například:

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

Konfigurace úlohy Cron pro automatizaci synchronizace souborů

Mohli bychom automatizovat Rychlou synchronizaci úlohy režimu prostřednictvím úloh cronu.

$ sudo su
$ crontab -e

Přidáním následujících dvou úloh cron pro adresáře local-to-local a local-to-remote zautomatizujete naše úlohy osynchronizace.

 */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"

Osynchronizace je ideálním řešením obousměrné synchronizace pro adresáře local-to-local a local-to-remote. Synchronizace adresářů, které vytvoříte, jsou dokonalým plánem zálohování důležitých dat v případě náhodného smazání nebo důkazů o poškozených souborech.


Linux
  1. Jak zapisovat soubory protokolu do RAM pomocí Log2ram v Linuxu

  2. Jak vytvořit řídké soubory v Linuxu pomocí příkazu „dd“.

  3. Jak hledat soubory pomocí regulárního výrazu ve skriptu linuxového shellu

  1. Jak používat Rsync k synchronizaci nových nebo změněných/upravených souborů v Linuxu

  2. Jak nahrávat nebo stahovat soubory/adresáře pomocí sFTP v Linuxu

  3. Jak ukončit terminál Linux pomocí skriptu Python?

  1. Jak provádět řádkové porovnání souborů v Linuxu pomocí příkazu diff

  2. Jak spravovat soubory protokolu pomocí Logrotate v Linuxu

  3. Jak přejmenovat více souborů dohromady v Linuxu pomocí 3 metod