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
- Složky,
- Toto zařízení,
- 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!