GNU/Linux >> Znalost Linux >  >> Linux

Synchronizujte soubory mezi více systémy pomocí synchronizace

V tomto tutoriálu krok za krokem se naučíme, co je Syncthing , jak nainstalovat Syncthing na Linux, jak synchronizovat soubory mezi více systémy pomocí Syncthing v reálném čase a nakonec jak řešit běžné problémy Syncthing.

1. Úvod do Syncthing

Syncthing je bezplatný opensource program pro synchronizaci souborů typu peer-to-peer (P2P), který umožňuje bezpečnou synchronizaci souborů mezi dvěma nebo více zařízeními v síti LAN nebo vzdálenými zařízeními přes internet.

Zařízením může být stolní systém, server nebo mobilní telefon. Změny provedené na jednom zařízení (tj. vytvoření, úprava, smazání atd.) budou automaticky replikovány do dalších zařízení.

Syncthing nepotřebuje žádnou konfiguraci! Funguje to jen po vybalení z krabice. Každé zařízení je identifikováno ID . Stačí zadat ID zařízení pro výměnu souborů.

Protože se jedná o program pro synchronizaci souborů P2P, vaše data nebudou nahrána do žádného veřejného cloudu nebo centrálního serveru. Syncthing jednoduše vyměňuje data mezi vašimi zařízeními, když jsou ve stejnou dobu online.

Syncthing je aplikace nezávislá na platformě, takže můžete synchronizovat soubory mezi více počítači se stejným nebo odlišným OS nebo synchronizovat soubory mezi počítačem a mobilním zařízením a naopak. Je také možné synchronizovat jednu složku do více umístění na různých zařízeních.

Nástroj pro synchronizaci souborů Syncthing je napsán v Go programovací jazyk. Funguje pod GNU/Linux, Mac OS, Solaris a několika verzemi BSD.

Pro ty, kteří chtějí synchronizovat soubory mezi mobilními zařízeními a počítači, je k dispozici také oficiální aplikace Syncthing pro Android.

Pozor: Upozorňujeme, že Syncthing nepodporuje místní synchronizaci . To znamená - nemůžete synchronizovat soubory mezi složkami ve stejném systému. Pokud chcete provést místní synchronizaci, zvažte použití buď rsync nebo unison .

1.1. Jak Syncthing funguje?

Syncthing rozděluje soubory na více částí nazývaných Blocks a přenést je z jednoho zařízení do druhého. Proto může více zařízení sdílet synchronizační zátěž, podobně jako torrent protokol. Rychlost přenosu dat je tedy obvykle vysoká. Čím více zařízení máte online, tím vyšší je rychlost přenosu dat.

Pokud se obsah souborů změní současně a liší se na místních a vzdálených zařízeních, dojde ke konfliktu. Syncthing efektivně řeší konflikty souborů přejmenováním jednoho ze souborů na <filename>.sync-conflict-<date>-<time>-<modifiedBy>.<ext> .

Obvykle bude soubor se starší dobou modifikace označen jako konfliktní a poté bude přejmenován. Pokud jsou časy úprav stejné, soubor pocházející ze zařízení, které má větší hodnotu z prvních 63 bitů pro své device ID bude označen jako konfliktní soubor.

Pokud je konflikt mezi úpravou a smazáním souboru, upravený soubor bude obnoven bez přejmenování na zařízení, kde byl smazán.

Další pozoruhodná věc na Syncthing je, že nikdy nezapisuje přímo do cílového souboru. Před přepsáním staré verze vytvoří dočasnou kopii dat. Jakmile je přenos souborů úspěšně dokončen, dočasné soubory budou odstraněny.

Pokud se během synchronizace souborů vyskytnou nějaké chyby, dočasný soubor je ve výchozím nastavení uchováván po dobu 24 hodin. Toto nastavení můžete samozřejmě změnit, jak vám vyhovuje. Dočasné soubory se jmenují .syncthing.original-filename.ext.tmp a ve výchozím nastavení jsou skryté.

Jak již bylo řečeno, Syncthing přímo přenáší soubory mezi dvěma zařízeními. Když není možné navázat přímé spojení mezi dvěma zařízeními, Syncthing je propojí přes relé .

Přenášená připojení jsou šifrována pomocí TLS šifrovací metoda pro bezpečný přenos dat mezi zařízeními. K navázání komunikace se všemi zařízeními používá svůj vlastní bezplatný protokol s názvem Block Exchange Protocol.

2. Funkce synchronizace

Základní funkce Syncthing jsou uvedeny níže:

  • Soukromé - Data se nikdy nereplikují jinde než na nakonfigurovaných zařízeních.
  • Zabezpečení - Veškerá komunikace mezi zařízeními je šifrována pomocí TLS.
  • Ověření - Každé zařízení je identifikováno jedinečným ID zařízení. ID zařízení se používá pro rozlišení adresy, autentizaci a autorizaci. K vašemu clusteru se mohou připojit pouze zařízení, která jste výslovně povolili.
  • Transparentnost - Syncthing je projekt s otevřeným zdrojovým kódem. Každý si tedy může prohlédnout jeho kód a pochopit, jak Syncthing najde další aktivní zařízení k synchronizaci, jak přenáší data z uzlu do uzlu a jak synchronizuje data mezi různými zařízeními.
  • Cena - Syncthing je bezmračná, decentralizovaná aplikace pro sdílení souborů. Neexistuje žádný centrální server nebo cloudová služba, za kterou by se muselo platit. Je tedy zcela zdarma!
  • Omezení - Neexistuje žádný limit. Můžete sdílet neomezený počet souborů libovolné velikosti, pokud máte na disku dostatek volného místa.
  • Více platforem apřenosné - Syncthing je platformově agnostický. Funguje na mnoha operačních systémech, včetně Linuxu, Windows, Solaris, BSD a Androidu.

3. Nainstalujte Syncthing na Linux

Syncthing musíte nainstalovat na všechny systémy, které chcete synchronizovat.

Syncthing je zabalen pro mnoho distribucí Linuxu a je dostupný v oficiálních repozitářích.

Chcete-li nainstalovat Syncthing na Arch Linux a jeho variant, jako je EndeavourOS a Manjaro Linux, spusťte:

$ sudo pacman -S syncthing

V Debianu, Ubuntu:

$ sudo apt install syncthing

Upozorňujeme, že v Ubuntu musíte povolit [universe] úložiště pro instalaci Syncthing.

Ve verzích RHEL 8, CentOS 8, AlmaLinux 8, Rocky Linux 8, Fedora 31 a novějších:

Povolit [EPEL] úložiště:

$ sudo dnf install epel-release

A poté nainstalujte synchronizaci pomocí následujícího příkazu:

$ sudo dnf install syncthing

Na edicích CentOS 7 a 6 můžete nainstalovat Syncthing z předkompilovaných binárních souborů, jak je popsáno v další části.

openSUSE:

$ sudo zypper install syncthing

3.1. Nainstalujte Syncthing z binárních souborů

Pokud Syncthing není k dispozici ve výchozích úložištích, můžete si stáhnout předkompilované binární soubory ze stránky vydání a přesuňte jej do $PATH jak je uvedeno níže.

$ wget https://github.com/syncthing/syncthing/releases/download/v1.11.1/syncthing-linux-amd64-v1.11.1.tar.gz

Rozbalte to:

$ tar xvf syncthing-linux-amd64-v1.11.1.tar.gz

A přesuňte jej do $PATH , například /usr/local/bin/ .

$ sudo cp syncthing-linux-amd64-v1.11.1/syncthing /usr/local/bin/

Chcete-li zkontrolovat, zda je nainstalován správně, zkuste zobrazit jeho verzi pomocí příkazu:

$ syncthing --version

Pokud vidíte výstup jako níže, gratulujeme! Úspěšně jste nainstalovali Syncthing!!

syncthing v1.11.1 "Fermium Flea" (go1.15.3 linux-amd64) [email protected] 2020-11-03 11:29:54 UTC

3.2. Nainstalujte klienta syncthing-gtk

Syncthing má také grafické uživatelské rozhraní s názvem syncthing-gtk . Pokud chcete upozornění na ploše a integraci s vašimi správci souborů, jako je Nautilus, Nemo, Caja, nainstalujte si synchronizační grafické rozhraní GTK.

Syncthing-gtk je k dispozici v oficiálních repozitářích, takže jej můžete nainstalovat také pomocí výchozího správce balíčků vaší linuxové distribuce. Chcete-li například nainstalovat syncthing-gtk na systémy založené na Debianu, spusťte:

$ sudo apt install syncthing-gtk

Pokud Syncthing-gtk není k dispozici v oficiálních repozitářích, stáhněte si místo toho aplikaci flatpak. Ujistěte se, že jste nainstalovali flatpak na vašem počítači se systémem Linux a poté spusťte následující příkaz k instalaci syncthing-gtk:

$ flatpak install flathub me.kozec.syncthingtk

4. Inicializujte Syncthing na všech zařízeních

Pro účely této příručky budu používat následující dva systémy.

Systém 1:

Operating system   - Ubuntu 20.04 LTS desktop system
Hostname           - ostechnix
IP Address         - 192.168.225.37/24

Systém 2:

Operating system   - Fedora 32 silverblue desktop
Hostname           - toolbox
IP Address         - 192.168.225.46/24

Na všech systémech, které chcete synchronizovat, musíte provést následující kroky.

Otevřete svůj terminál a spusťte Syncthing pro jeho inicializaci:

$ syncthing

Pokud je Syncthing nainstalován pomocí flatpak, spusťte jej spuštěním tohoto příkazu:

$ flatpak run me.kozec.syncthingtk

Když Syncthing spustíte poprvé, vygeneruje potřebné klíče, vytvoří výchozí konfigurační soubory a nastaví výchozí synchronizační složku s názvem "Sync" ve vašem $HOME adresář.

Zde je ukázkový výstup z mého desktopového systému Ubuntu při první inicializaci Syncthing:

[monitor] 17:23:06 INFO: Starting syncthing
[start] 17:23:06 INFO: Generating ECDSA key and certificate for syncthing...
[R7FIO] 17:23:06 INFO: syncthing unknown-dev "Erbium Earthworm" (go1.13.5 linux-amd64) [email protected] 1970-01-01 00:00:00 UTC
[R7FIO] 17:23:06 INFO: My ID: R7FIOSA-3ZO6FLJ-LFBAVWM-LUEDOR2-RPDXXH7-4P2HFWX-QCWBN4D-ENEGIAY
[R7FIO] 17:23:07 INFO: Single thread SHA256 performance is 118 MB/s using minio/sha256-simd (88 MB/s using crypto/sha256).
[R7FIO] 17:23:07 INFO: Default folder created and/or linked to new config
[R7FIO] 17:23:07 INFO: Default config saved. Edit /home/sk/.config/syncthing/config.xml to taste (with Syncthing stopped) or use the GUI
[R7FIO] 17:23:07 INFO: Hashing performance is 103.85 MB/s
[R7FIO] 17:23:07 INFO: Starting deadlock detector with 20m0s timeout
[R7FIO] 17:23:07 INFO: No stored folder metadata for "default": recalculating
[R7FIO] 17:23:07 INFO: Ready to synchronize "Default Folder" (default) (sendreceive)
[R7FIO] 17:23:07 INFO: Overall send rate is unlimited, receive rate is unlimited
[R7FIO] 17:23:07 INFO: Using discovery server https://discovery-v4.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[R7FIO] 17:23:07 INFO: TCP listener ([::]:22000) starting
[R7FIO] 17:23:07 INFO: Using discovery server https://discovery-v6.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[R7FIO] 17:23:07 INFO: Using discovery server https://discovery.syncthing.net/v2/?noannounce&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[R7FIO] 17:23:07 INFO: Relay listener (dynamic+https://relays.syncthing.net/endpoint) starting
[R7FIO] 17:23:08 INFO: Completed initial scan of sendreceive folder "Default Folder" (default)
[R7FIO] 17:23:08 INFO: Loading HTTPS certificate: open /home/sk/.config/syncthing/https-cert.pem: no such file or directory
[R7FIO] 17:23:08 INFO: Creating new HTTPS certificate
[R7FIO] 17:23:08 INFO: GUI and API listening on 127.0.0.1:8384
[R7FIO] 17:23:08 INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
[R7FIO] 17:23:08 INFO: My name is "ostechnix"
[R7FIO] 17:23:18 INFO: Detected 0 NAT services
[R7FIO] 17:24:42 INFO: Joined relay relay://210.23.25.77:22067

Po dokončení inicializace se webové GUI Syncthing automaticky otevře ve vašem výchozím prohlížeči:

Jak můžete vidět na výše uvedeném snímku obrazovky, webové rozhraní Syncthing je velmi snadné na pochopení a použití. Většina možností je samozřejmá.

Webové rozhraní má tři části, a to

  1. Složky,
  2. Toto zařízení,
  3. a vzdálená zařízení.

Složky sekce zobrazuje seznam sdílených složek. Ve výchozím nastavení je výchozí sdílený adresář ~/Sync je uveden zde.

V Toto zařízení v sekci najdete podrobnosti, jako je název počítače, rychlost stahování/odesílání, využití RAM/CPU, celková doba provozu a další.

Pod sekcí „Zařízení“ je další sekce s názvem Vzdálená zařízení sekce, kde můžete přidat všechna vzdálená zařízení k synchronizaci. Protože jsme zatím nepřidali žádná zařízení, zobrazuje se prázdné.

V horní části webového rozhraní Syncthing si můžete vybrat preferovaný jazyk, otevřít sekci nápovědy a provádět různé administrativní úlohy v části Akce tab.

Seznam věcí, které můžete konfigurovat na kartě „Akce“, je uveden níže:

  • změnit název zařízení,
  • vygenerovat klíč API,
  • minimální požadované volné místo na disku v adresáři $HOME,
  • povolit nebo zakázat anonymní hlášení o používání,
  • změnit výchozí cestu ke složce,
  • změnit adresu pro naslouchání GUI,
  • nastavit uživatelské jméno a heslo správce GUI,
  • povolte HTTPS,
  • nastavit limit příchozí a odchozí rychlosti,
  • přidejte zařízení nebo složky, které chcete při synchronizaci ignorovat,
  • a další.

Většina možností na kartě Akce by měla zůstat nedotčená. Výchozí konfigurace stačí. Pokud jste obeznámeni se všemi možnostmi, změňte je podle svého přání.

Nyní přejděte do ostatních systémů a inicializujte Syncthing, abyste vygenerovali potřebné konfigurační soubory a vytvořili výchozí synchronizační složku.

Aktuálně nakonfigurované synchronizační cesty můžete zobrazit pomocí příkazu:

$ syncthing --paths

Ukázkový výstup:

Configuration file:
	/home/sk/.config/syncthing/config.xml

Database directory:
	/home/sk/.config/syncthing/index-v0.14.0.db

Device private key & certificate files:
	/home/sk/.config/syncthing/key.pem
	/home/sk/.config/syncthing/cert.pem

HTTPS private key & certificate files:
	/home/sk/.config/syncthing/https-key.pem
	/home/sk/.config/syncthing/https-cert.pem

Log file:
	-

GUI override directory:
	/home/sk/.config/syncthing/gui

Default sync folder directory:
	/home/sk/Sync

4.1. Nastavte administrativní uživatelské jméno a heslo pro webové GUI Syncthing

Ve výchozím nastavení máte přístup k webovému GUI Syncthing bez uživatelského jména a hesla. Aby byla vaše instance Syncthing trochu zabezpečená, nastavte administrátora a heslo.

Klikněte na "Akce" v pravém horním rohu a zvolte „Nastavení“ z rozbalovací nabídky.

Pod „GUI“ zadejte své administrátorské uživatelské jméno a heslo. Ujistěte se, že je heslo silné a není snadnější jej uhodnout. Povolte také „Použít HTTPS pro GUI“ volba.

Kliknutím na tlačítko Uložit vytvořte uživatelský účet správce.

Nyní obnovte svůj webový prohlížeč a zobrazí se upozornění na certifikát. Je to proto, že jsme právě povolili HTTPS pro webové GUI.

Chcete-li toto upozornění obejít, klikněte na Upřesnit a poté klikněte na „Přijmout riziko a pokračovat“ možnost přidat váš localhost do seznamu výjimek.

Dále zadejte administrátorské uživatelské jméno a heslo pro přístup k webovému GUI Syncthing.

Můžete také spustit klienta syncthing-gtk a inicializovat Syncthing.

Opakujte stejné kroky na druhém počítači pro nastavení administrátora pro webové GUI.

5. Synchronizujte soubory mezi více systémy pomocí Syncthing

Spusťte Syncthing na obou počítačích spuštěním tohoto příkazu:

$ syncthing

Webová příručka Syncthing se automaticky otevře ve výchozím prohlížeči.

Abychom mohli synchronizovat soubory mezi systémy, musíme je vzájemně spárovat pomocí jejich device ID . ID zařízení můžete zobrazit na kartě „Akce“.

Zde je ID zařízení mého stolního počítače Ubuntu 20.04:

Výše uvedené ID byste si měli vyměnit s jiným systémem, aby spolu tyto dva systémy mohly mluvit.

Chcete-li tak učinit, klikněte na Přidat vzdálené zařízení ze sekce Vzdálená zařízení.

Na další obrazovce byste měli vidět ID zařízení blízkého systému. Kliknutím na ID zařízení jej spárujete s aktuálním systémem.

Dále přejděte na "Sdílení" a vyberte složky, které chcete sdílet s aktuálním zařízením. Volitelně můžete zaškrtnout „Automaticky přijmout“ k automatickému vytváření nebo sdílení složek, které toto zařízení inzeruje ve výchozí cestě. Pro informaci, výchozí sdílená cesta je ~/Sync .

V části Pokročilé můžete zvolit metodu komprese a nastavit limity rychlosti zařízení.

Nakonec klikněte na tlačítko Uložit tlačítko pro spárování system2 se strojem system1.

Pro případ, že se ID zařízení nezobrazuje, ručně jej zkopírujte ze systému2 a vložte jej sem.

Na jiném systému (tj. system2) se zobrazí upozornění s žádostí o přidání prvního systému. Klikněte na Přidat zařízení přijmout požadavek a spárovat je.

Podobně opakujte výše uvedené kroky na systému system2 a spárujte jej s počítačem system1. Jakmile oba systémy úspěšně spárujete, uvidíte je v seznamu "Vzdálená zařízení" sekce ve webovém rozhraní Syncthing.

Zde "toolbox" je název mé pracovní plochy Fedory.

Zobrazí se také „Aktuální“ vedle vzdáleného zařízení a také do "Výchozí složka" v levém panelu. To znamená – jsou připraveny k synchronizaci!

Chcete-li zobrazit podrobnosti o sdílené složce, klikněte na "Výchozí složka" kartu v levém podokně rozbalte. Uvidíte různé podrobnosti o sdílené složce, například;

  • ID sdílené složky,
  • cesta ke sdílené složce,
  • stav složky,
  • časový interval mezi periodickým skenováním,
  • do kterého zařízení je aktuálně sdílen,
  • čas poslední kontroly atd.

Teď jsme hotovi. Úspěšně jsme nainstalovali a nakonfigurovali Synchthing na obou systémech a oba jsou vzájemně spárované.

Od této chvíle cokoli, co vložíte do ~/Sync složka na jednom ze systémů bude synchronizována s druhým systémem. Průběh synchronizace můžete sledovat z rozhraní Syncthing:

Kdykoli něco vytvoříte, upravíte nebo odstraníte z ~/Sync složky v kterémkoli ze systémů, budou změny automaticky replikovány do jiného systému a naopak.

Po dokončení synchronizace zavřete webové rozhraní Syncthing a poté ukončete syncthing stisknutím Ctrl+C .

5.1. Vytvořte novou sdílenou složku

Můžete vytvořit více sdílených adresářů a všechny je synchronizovat s jinými spárovanými zařízeními.

Chcete-li vytvořit nový sdílený adresář, klikněte na Přidat složku v části Složky sekce vlevo.

V Obecné zadejte název složky, ID složky a cestu ke složce, kterou chcete sdílet s jinými zařízeními.

Dále přejděte na "Sdílení" a vyberte zařízení pro sdílení této složky.

Můžete také nastavit sdílenou složku jako Pouze pro odesílání nebo Pouze pro příjem nebo pro odesílání a přijímání. Tato možnost je dostupná pod "Typ složky" v rozevíracím seznamu Pokročilé tab.

Nakonec klikněte na Uložit tlačítko pro aktivaci tohoto sdílení.

Nový sdílený adresář bude nyní uveden v části Složky sekce. Nastavení sdílené složky můžete kdykoli změnit kliknutím na Upravit tlačítko.

5.2. Nakonfigurujte firewall

Pokud jste za místním firewallem nebo routerem třetí strany, povolte porty 22000/TCP a 21027/UDP pro příchozí a odchozí provoz. Upozorňujeme, že to musíte provést na všech systémech.

Pokud jste nakonfigurovali ufw (nekomplikovaný firewall) na vašem počítači se systémem Linux můžete povolit porty Syncthing pomocí následujícího příkazu:

$ sudo ufw allow syncthing

Pokud používáte firewalld a poté spusťte následující příkazy k otevření potřebných portů:

$ sudo firewall-cmd --zone=public --add-service=syncthing --permanent

Nakonec restartujte firewalld služby, aby se změny projevily:

$ sudo firewall-cmd --reload

5.3. Povolit vzdálené webové GUI (volitelné)

Výchozí port pro webové GUI je 8384 . K webovému GUI Syncthing se dostanete tak, že přejdete na adresu URL http://localhost:8384 nebo http://127.0.0.1:8384 z webového prohlížeče.

Ve výchozím nastavení je webové GUI Syncthing přístupné pouze ze samotného localhostu. Pokud chcete přistupovat k webovému GUI z jiných systémů v síti, měli byste povolit port 8384 ve vašem místním firewallu/routeru.

Pokud používáte ufw , spusťte následující příkaz, abyste povolili syncthing-gui služba:

$ sudo ufw allow syncthing-gui

Podobně můžete povolit externí přístup k webovému grafickému rozhraní Syncthing pomocí firewalld jako níže:

$ sudo firewall-cmd --zone=public --add-service=syncthing-gui --permanent

Chcete-li použít změny, restartujte službu firewalld:

$ sudo firewall-cmd --reload

Po povolení výchozího portu přes bránu firewall změňte GUI listen address prostřednictvím webového rozhraní GUI z 127.0.0.1:8384 na 0.0.0.0:8384 :

Případně upravte Syncthing config.xml soubor:

$ nano ~/.config/syncthing/config.xml

Najděte následující řádek:

<address>127.0.0.1:8384</address>

A změňte jej na:

<address>0.0.0.0:8384</address>

Stiskněte CTRL+O následuje CTRL+X pro uložení a ukončení souboru.

Nyní můžete přistupovat k webovému GUI z libovolného vzdáleného počítače pomocí "https://IPAddress:8384" URL.

Pozor: Vezměte prosím na vědomí, že je to volitelné a povolení vzdáleného webového přístupu GUI se nedoporučuje. Tím se váš systém zpřístupní veřejnosti. Povolte webový přístup GUI ke všem systémům, pouze pokud jsou v důvěryhodné síti.

Také se ujistěte, že jste nastavili administrátora pro přihlášení do webového GUI a povolili „Použít HTTPS pro GUI“ možnost, jak je popsáno výše.

5.4. Tunelování přes SSH

Pokud mohou být oba systémy přístupné přes SSH, můžete přistupovat k webovému GUI vzdáleného systému na vašem místním počítači prostřednictvím tunelu SSH. Je to o něco bezpečnější než otevření webového gui portu Syncthing do vnějšího světa.

Chcete-li spustit tunel SSH, spusťte:

$ ssh -L 9999:127.0.0.1:8384 [email protected]

Nahraďte "[email protected]" s vaším vzdáleným uživatelským jménem a IP adresou. To se naváže na váš místní port 9999 a přesměruje všechna připojení odtud na port 8384 na cílovém počítači. Toto stále funguje, i když je Syncthing vázáno naslouchat pouze na localhost.

Nyní můžete mít přístup ke vzdálenému webovému GUI z vašeho místního systému, když přejdete na https://localhost:9999/ .

5.5. Automatické spuštění synchronizace

Kdykoli chcete něco synchronizovat, musíte ručně spustit instanci synchronizace. Pokud jej chcete spouštět automaticky při každém restartu, proveďte následující.

Vytvořte nový systemd služba pro synchronizaci:

$ sudo nano /etc/systemd/system/[email protected]

Přidejte do něj následující řádky:

[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target

[Service]
User=%i
ExecStart=/usr/local/bin/syncthing -no-browser -gui-address="0.0.0.0:8384" -no-restart -logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4

# Hardening
ProtectSystem=full
PrivateTmp=true
SystemCallArchitectures=native
MemoryDenyWriteExecute=true
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

Nahraďte "ExecStart=/usr/local/bin/syncthing" se správnou cestou ke spustitelnému souboru synchronizace.

Pokud jste nainstalovali Syncthing pomocí správce balíčků distribuce, cesta ke spustitelnému souboru bude k dispozici zde - /usr/bin/syncthing .

Pokud je synchronizace nainstalována z předkompilovaných binárních souborů, cesta by byla "/usr/local/bin/syncthing" .

Po aktualizaci správné cesty uložte a zavřete soubor.

Dále znovu načtěte systemd jednotky pomocí příkazu:

$ sudo systemctl daemon-reload

Nakonec spusťte službu synchronizace a povolte automatické spouštění při restartu systému:

$ sudo systemctl start [email protected]$USER
$ sudo systemctl enable [email protected]$USER

Ověřte, zda běží Syncthing pomocí příkazu:

$ sudo systemctl status [email protected]$USER

Ukázkový výstup z mého boxu CentOS:

● [email protected] - Syncthing - Open Source Continuous File Synchronization for ostechnix
   Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2020-11-24 18:07:34 IST; 1s ago
     Docs: man:syncthing(1)
 Main PID: 10932 (syncthing)
    Tasks: 11 (limit: 11480)
   Memory: 20.8M
   CGroup: /system.slice/system-syncthing.slice/[email protected]
           ├─10932 /usr/local/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0
           └─10937 /usr/local/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0

Nov 24 18:07:34 centos8.ostechnix.lan systemd[1]: [email protected]: Service RestartSec=100ms expired, scheduling restart.
Nov 24 18:07:34 centos8.ostechnix.lan systemd[1]: [email protected]: Scheduled restart job, restart counter is at 23.
Nov 24 18:07:34 centos8.ostechnix.lan systemd[1]: Stopped Syncthing - Open Source Continuous File Synchronization for ostechnix.
Nov 24 18:07:34 centos8.ostechnix.lan systemd[1]: Started Syncthing - Open Source Continuous File Synchronization for ostechnix.
Nov 24 18:07:34 centos8.ostechnix.lan syncthing[10932]: [start] INFO: syncthing v1.11.1 "Fermium Flea" (go1.15.3 linux-amd64) [email protected]>
Nov 24 18:07:34 centos8.ostechnix.lan syncthing[10932]: [4ZC47] INFO: My ID: 4ZC47V7-KW3P2BH-FSLG3QN-2D2W3OO-LI2KEQ5-JJOBXWY-QMFOAI3-FP>
Nov 24 18:07:35 centos8.ostechnix.lan syncthing[10932]: [4ZC47] INFO: Single thread SHA256 performance is 117 MB/s using minio/sha256-s>
lines 1-18/18 (END)

Od této chvíle se Syncthing automaticky spustí při spuštění a synchronizuje soubory mezi nakonfigurovanými systémy.

5.6. Odstraňování problémů

Někdy můžete narazit na chybu databáze a Syncthing odmítne synchronizovat soubory mezi zařízeními. V takových případech můžete vynuceně znovu prohledat soubory a znovu synchronizovat databázi pomocí následujícího příkazu:

$ syncthing -reset-database

6. Závěr

Nyní víte, jak synchronizovat soubory mezi více systémy pomocí Syncthing v Linuxu. Jak vidíte, synchronizace souborů pomocí Syncthing je docela snadná a přímočará.

I když je k dispozici mnoho cloudových služeb pro ukládání dat, existuje mnoho obav o soukromí, bezpečnost a nedostatek kontroly nad vašimi cennými daty.

Díky Syncthing nyní můžete mít větší klid. Neexistuje žádný centrální server, neexistuje žádné odposlouchávání! Máte pod kontrolou svá vlastní data!


Linux
  1. Hrozná situace – souborové systémy připojené současně několika nezávislými instancemi OS?

  2. Dd:Více vstupních souborů?

  3. CloudCross – Synchronizace souborů a adresářů s více cloudovými úložišti

  1. EasyJoin – posílejte soubory mezi telefonem a počítačem bez internetu

  2. Jak nainstalovat / přepínat mezi více verzemi Java pomocí SDKMAN

  3. Třídit textové soubory s více řádky jako řádek

  1. Tail více vzdálených souborů

  2. Jak sdílet aktiva mezi více webovými servery?

  3. Jak načíst více souborů ze vzdáleného počítače na místní pomocí Ansible