GNU/Linux >> Linux Esercitazione >  >> Linux

Sincronizza i file tra più sistemi con Syncthing

In questo tutorial passo dopo passo, impareremo cos'è Syncthing , come installare Syncthing su Linux, come sincronizzare file tra più sistemi con Syncthing in tempo reale e infine come risolvere i problemi comuni di Syncthing.

1. Introduzione alla sincronizzazione

Syncthing è un programma di sincronizzazione di file peer-to-peer (P2P) gratuito, opensource, che consente di sincronizzare in modo sicuro i file tra due o più dispositivi all'interno della LAN o dispositivi remoti su Internet.

Il dispositivo potrebbe essere un sistema desktop, un server o un telefono cellulare. Le modifiche apportate in un dispositivo (ad es. creazione, modifica ed eliminazione di file, ecc.) verranno automaticamente replicate su altri dispositivi.

Syncthing non ha bisogno di alcuna configurazione! Funziona appena fuori dagli schemi. Ogni dispositivo è identificato da un ID . Basta fornire l'ID del dispositivo per scambiare file.

Poiché si tratta di un programma di sincronizzazione di file P2P, i tuoi dati non verranno caricati su alcun cloud pubblico o server centrale. Syncthing scambia semplicemente i dati tra i tuoi dispositivi quando sono online contemporaneamente.

Syncthing è un'applicazione indipendente dalla piattaforma, quindi puoi sincronizzare file tra più computer che funzionano con lo stesso o diverso sistema operativo, o sincronizzare file tra un computer e un dispositivo mobile e viceversa. È anche possibile sincronizzare una singola cartella in più posizioni su dispositivi diversi.

Lo strumento di sincronizzazione dei file di sincronizzazione è scritto in Vai linguaggio di programmazione. Funziona con GNU/Linux, Mac OS, Solaris e diverse versioni di BSD.

È disponibile anche un'app ufficiale Syncthing per Android per coloro che desiderano sincronizzare file tra dispositivi mobili e computer.

Avviso: Tieni presente che Syncthing non supporta la sincronizzazione locale . Significato:non puoi sincronizzare file tra cartelle sullo stesso sistema. Se desideri eseguire la sincronizzazione locale, considera l'utilizzo di rsync o unisono .

1.1. Come funziona Syncthing?

La sincronizzazione divide i file in più parti denominate Blocchi e trasferirli da un dispositivo all'altro. Pertanto, più dispositivi possono condividere il carico di sincronizzazione, in modo simile a un protocollo torrent. Quindi, la velocità di trasferimento dei dati è generalmente veloce. Più dispositivi hai online, maggiore sarà la velocità di trasferimento dei dati.

Se il contenuto dei file viene modificato contemporaneamente e sono diversi sui dispositivi locali e remoti, si verifica un conflitto. Syncthing gestisce i conflitti di file in modo efficiente rinominando uno dei file in <filename>.sync-conflict-<date>-<time>-<modifiedBy>.<ext> .

Di solito, il file con l'ora di modifica precedente verrà contrassegnato come file in conflitto e quindi verrà rinominato. Se i tempi di modifica sono uguali, il file proveniente dal dispositivo che ha il valore maggiore dei primi 63 bit per il suo device ID verrà contrassegnato come il file in conflitto.

Se il conflitto è tra una modifica e un'eliminazione del file, il file modificato verrà ripristinato senza rinominarlo sul dispositivo in cui è stato eliminato.

Un'altra cosa degna di nota di Syncthing è che non scrive mai direttamente su un file di destinazione. Esegue una copia temporanea dei dati prima di sovrascrivere la vecchia versione. Una volta completato con successo il trasferimento dei file, i file temporanei verranno eliminati.

Se si verificano errori durante la sincronizzazione dei file, il file temporaneo viene conservato per 24 ore per impostazione predefinita. Ovviamente puoi modificare questa impostazione a tuo piacimento. I file temporanei sono denominati .syncthing.original-filename.ext.tmp e sono nascosti per impostazione predefinita.

Come già affermato, Syncthing trasferisce direttamente i file tra due dispositivi. Quando non è possibile stabilire una connessione diretta tra i due dispositivi, Syncthing li collega tramite un relè .

Le connessioni inoltrate vengono crittografate utilizzando TLS metodo di crittografia per trasferire in modo sicuro i dati tra i dispositivi. Utilizza il proprio protocollo gratuito, denominato Block Exchange Protocol per stabilire la comunicazione con tutti i dispositivi.

2. Funzioni di sincronizzazione

Le funzionalità principali di Syncthing sono riportate di seguito:

  • Privato - I dati non vengono mai replicati altrove se non sui dispositivi configurati.
  • Protetto - Tutte le comunicazioni tra dispositivi sono crittografate con TLS.
  • Autenticazione - Ogni dispositivo è identificato da un ID dispositivo univoco. L'ID dispositivo viene utilizzato per la risoluzione dell'indirizzo, l'autenticazione e l'autorizzazione. Solo i dispositivi che hai esplicitamente consentito possono connettersi al tuo cluster.
  • Trasparenza - Syncthing è un progetto open source. Quindi chiunque può ispezionare il suo codice e capire come Syncthing trova altri dispositivi attivi con cui sincronizzarsi, come trasferisce i dati da un nodo all'altro e come sincronizza i dati tra dispositivi diversi.
  • Costo - Syncthing è un'applicazione di condivisione file decentralizzata e senza cloud. Non ci sono server centrali o servizi cloud da pagare. Quindi, è completamente gratuito!
  • Limitazione - Non c'è limite. Puoi condividere un numero illimitato di file di qualsiasi dimensione purché tu disponga di spazio libero su disco sufficiente sui tuoi dispositivi.
  • Piattaforma e portatile - Syncthing è indipendente dalla piattaforma. Funziona su molti sistemi operativi, inclusi Linux, Windows, Solaris, BSD e Android.

3. Installa Syncthing su Linux

È necessario installare Syncthing su tutti i sistemi che si desidera mantenere sincronizzati.

Syncthing è incluso in molte distribuzioni Linux ed è disponibile nei repository ufficiali.

Per installare Syncthing su Arch Linux e le sue varianti come EndeavourOS e Manjaro Linux, esegui:

$ sudo pacman -S syncthing

Su Debian, Ubuntu:

$ sudo apt install syncthing

Tieni presente che in Ubuntu devi abilitare [universe] repository per installare Syncthing.

Su RHEL 8, CentOS 8, AlmaLinux 8, Rocky Linux 8, Fedora 31 e versioni successive:

Abilita [EPEL] deposito:

$ sudo dnf install epel-release

E quindi installa la sincronizzazione usando il seguente comando:

$ sudo dnf install syncthing

Nelle edizioni CentOS 7 e 6, puoi installare Syncthing da binari precompilati come descritto nella sezione successiva.

openSUSE:

$ sudo zypper install syncthing

3.1. Installa Syncthing dai binari

Se Syncthing non è disponibile nei repository predefiniti, puoi scaricare i binari precompilati dalla pagina dei rilasci e spostalo nel tuo $PATH come mostrato di seguito.

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

Estrailo:

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

E spostalo nel tuo $PATH , ad esempio /usr/local/bin/ .

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

Per verificare se è installato correttamente, prova a visualizzare la sua versione usando il comando:

$ syncthing --version

Se vedi un output come di seguito, congratulazioni! Hai installato con successo Syncthing!!

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

3.2. Installa il client syncthing-gtk

Syncthing ha anche un'interfaccia utente grafica denominata syncthing-gtk . Se desideri le notifiche desktop e l'integrazione con i tuoi file manager come Nautilus, Nemo, Caja, installa l'interfaccia grafica GTK di sincronizzazione.

Syncthing-gtk è disponibile nei repository ufficiali, quindi puoi installarlo anche utilizzando il gestore di pacchetti predefinito della tua distribuzione Linux. Ad esempio, per installare syncthing-gtk su sistemi basati su Debian, eseguire:

$ sudo apt install syncthing-gtk

Se Syncthing-gtk non è disponibile nei repository ufficiali, scarica invece l'app flatpak. Assicurati di aver installato flatpak sulla tua macchina Linux e quindi esegui il seguente comando per installare syncthing-gtk:

$ flatpak install flathub me.kozec.syncthingtk

4. Inizializza Syncthing su tutti i dispositivi

Ai fini di questa guida, utilizzerò i due sistemi seguenti.

Sistema1:

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

Sistema2:

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

Devi eseguire i seguenti passaggi su tutti i sistemi che desideri mantenere sincronizzati.

Apri il tuo Terminale ed esegui Syncthing per inizializzarlo:

$ syncthing

Se Syncthing è installato utilizzando flatpak, avvialo eseguendo questo comando:

$ flatpak run me.kozec.syncthingtk

Quando esegui Syncthing per la prima volta, questo genererà le chiavi necessarie, creerà file di configurazione predefiniti e imposterà una cartella di sincronizzazione predefinita denominata "Sync" nel tuo $HOME directory.

Ecco un esempio di output dal mio sistema desktop Ubuntu durante l'inizializzazione di Syncthing per la prima volta:

[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

Una volta completata l'inizializzazione, la GUI web di Syncthing si aprirà automaticamente nel browser predefinito:

Come puoi vedere nello screenshot sopra, l'interfaccia web di Syncthing è molto facile da capire e da usare. La maggior parte delle opzioni sono autoesplicative.

L'interfaccia web ha tre sezioni:

  1. Cartelle,
  2. Questo dispositivo,
  3. e dispositivi remoti.

Le "Cartelle" sezione mostra l'elenco delle cartelle condivise. Per impostazione predefinita, la directory condivisa predefinita ~/Sync è elencato qui.

In "Questo dispositivo" nella sezione troverai i dettagli come il nome del computer, la velocità di download/upload, l'utilizzo della RAM/CPU, il tempo di attività totale e altro ancora.

Sotto la sezione "Il dispositivo" è presente un'altra sezione denominata "Dispositivi remoti" sezione in cui puoi aggiungere tutti i dispositivi remoti con cui sincronizzare. Poiché non abbiamo ancora aggiunto alcun dispositivo, viene visualizzato vuoto.

Nella parte superiore dell'interfaccia web di Syncthing, puoi scegliere la lingua preferita, aprire la sezione della guida ed eseguire varie attività amministrative in Azioni scheda.

L'elenco delle cose che puoi configurare dalla scheda "Azioni" è riportato di seguito:

  • cambia il nome del dispositivo,
  • genera chiave API,
  • spazio libero su disco minimo richiesto nella directory $HOME,
  • abilita o disabilita il rapporto sull'utilizzo anonimo
  • cambia il percorso della cartella predefinita,
  • modifica l'indirizzo di ascolto della GUI,
  • imposta il nome utente e la password dell'amministratore della GUI
  • abilita HTTPS,
  • imposta il limite di velocità in entrata e in uscita,
  • aggiungi dispositivi o cartelle da ignorare dalla sincronizzazione
  • e altro.

La maggior parte delle opzioni nella scheda Azioni dovrebbe essere lasciata inalterata. La configurazione predefinita è appena sufficiente. Se conosci tutte le opzioni, modificale secondo i tuoi desideri.

Ora vai agli altri sistemi e inizializza Syncthing per generare i file di configurazione necessari e creare la cartella di sincronizzazione predefinita.

Puoi visualizzare i percorsi di sincronizzazione attualmente configurati utilizzando il comando:

$ syncthing --paths

Risultato di esempio:

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. Imposta il nome utente e la password amministrativi per la GUI web di Syncthing

Per impostazione predefinita, puoi accedere alla GUI Web di Syncthing senza alcun nome utente e password. Per rendere un po' sicura la tua istanza di Syncthing, imposta un utente e una password amministrativi.

Fai clic su "Azioni" scheda nell'angolo in alto a destra e scegli "Impostazioni" dal menu a tendina.

Sotto la "GUI" scheda, inserisci il tuo nome utente amministrativo e la relativa password. Assicurati che la password sia complessa e non sia facile da indovinare. Abilita anche "Utilizza HTTPS per la GUI" opzione.

Fare clic sul pulsante Salva per creare l'account utente amministratore.

Ora aggiorna il tuo browser web e vedrai un messaggio di avviso del certificato. Questo perché abbiamo appena abilitato HTTPS per la GUI web.

Per ignorare questo avviso, fai clic su "Avanzate" e quindi fare clic su "Accetta il rischio e continua" opzione per aggiungere il tuo localhost all'elenco delle eccezioni.

Quindi, inserisci il nome utente amministrativo e la relativa password per accedere alla GUI Web di Syncthing.

Puoi anche avviare il client syncthing-gtk per inizializzare Syncthing.

Ripetere gli stessi passaggi sulla seconda macchina per configurare l'utente amministratore per la GUI Web.

5. Sincronizza i file tra più sistemi con Syncthing

Avvia Syncthing su entrambe le macchine eseguendo questo comando:

$ syncthing

La gui web di Syncthing si aprirà automaticamente nel browser predefinito.

Per sincronizzare i file tra i sistemi, dobbiamo accoppiarli tra loro utilizzando il loro device ID . Puoi visualizzare l'ID del dispositivo nella scheda "Azioni".

Ecco l'ID del dispositivo della mia macchina desktop Ubuntu 20.04:

È necessario scambiare l'ID sopra con un altro sistema in modo che i due sistemi parlino tra loro.

Per farlo, fai clic su "Aggiungi dispositivo remoto" pulsante dalla sezione Dispositivi remoti.

Dovresti vedere l'ID del dispositivo del sistema vicino nella schermata successiva. Fai clic sull'ID del dispositivo per associarlo al tuo sistema attuale.

Quindi, vai a "Condivisione" scheda e seleziona le cartelle da condividere con il dispositivo corrente. Facoltativamente, puoi selezionare "Accetta automaticamente" casella per creare o condividere automaticamente le cartelle che questo dispositivo pubblicizza nel percorso predefinito. Cordiali saluti, il percorso condiviso predefinito è ~/Sync .

Nella sezione "Avanzate" scheda, puoi scegliere il metodo di compressione e impostare i limiti di frequenza del dispositivo.

Infine, fai clic su "Salva" per associare il sistema2 con la macchina del sistema1.

Nel caso in cui l'ID del dispositivo non venga visualizzato, copialo manualmente dal sistema2 e incollalo qui.

Su un altro sistema (es. System2), vedrai un messaggio di notifica che ti chiede di aggiungere il primo sistema. Fai clic su "Aggiungi dispositivo" per accettare la richiesta e abbinarli.

Allo stesso modo, ripetere i passaggi precedenti sul sistema2 per accoppiarlo con il computer sistema1. Dopo aver accoppiato con successo entrambi i sistemi, li vedrai elencati in "Dispositivi remoti" sezione nell'interfaccia web di sincronizzazione.

Qui, "cassetta degli attrezzi" è il nome del mio desktop Fedora.

Sarai anche "Aggiornato" messaggio accanto al dispositivo remoto e anche alla "Cartella predefinita" scheda nel riquadro di sinistra. Significato:sono pronti per la sincronizzazione!

Per visualizzare i dettagli della cartella condivisa, fai clic su "Cartella predefinita" scheda nel riquadro di sinistra per espanderlo. Vedrai vari dettagli della cartella condivisa come;

  • ID cartella condivisa,
  • percorso cartella condivisa,
  • stato della cartella,
  • Intervallo di tempo tra la scansione periodica,
  • su quale dispositivo è attualmente condiviso
  • l'ora dell'ultima scansione ecc.

Abbiamo finito ora. Abbiamo installato e configurato correttamente Synchthing su entrambi i sistemi ed entrambi sono accoppiati tra loro.

D'ora in poi, qualunque cosa tu inserisca nel ~/Sync cartella su uno dei sistemi verrà sincronizzata con l'altro sistema. Puoi visualizzare l'avanzamento della sincronizzazione dall'interfaccia di Syncthing:

Ogni volta che crei, modifichi o elimini qualcosa da ~/Sync cartella in uno qualsiasi dei sistemi, le modifiche verranno automaticamente replicate su un altro sistema e viceversa.

Una volta completata la sincronizzazione, chiudi l'interfaccia web di Syncthing e quindi esci da syncthing comando premendo Ctrl+C .

5.1. Crea una nuova cartella condivisa

Puoi creare più directory condivise e sincronizzarle tutte con altri dispositivi accoppiati.

Per creare una nuova directory condivisa, fai clic su "Aggiungi cartella" in "Cartelle" sezione a sinistra.

In "Generale" scheda, immettere l'etichetta della cartella, l'ID cartella e il percorso della cartella da condividere con altri dispositivi.

Quindi, vai a "Condivisione" scheda e seleziona i dispositivi per condividere questa cartella.

Puoi anche impostare una cartella condivisa come Solo invio o Solo ricezione o entrambi Invia e Ricevi. Questa opzione è disponibile in "Tipo di cartella" casella a discesa in "Avanzate" scheda.

Infine, fai clic su "Salva" pulsante per attivare questa condivisione.

La nuova directory condivisa sarà ora elencata nelle "Cartelle" sezione. Puoi modificare le impostazioni della cartella condivisa in qualsiasi momento facendo clic su "Modifica" pulsante.

5.2. Configura firewall

Se sei dietro un firewall o router locale di terze parti, consenti le porte 22000/TCP e 21027/UDP per il traffico in entrata e in uscita. Tieni presente che devi farlo su tutti i sistemi.

Se hai configurato ufw (firewall semplice) nella tua macchina Linux, puoi consentire le porte Syncthing usando il seguente comando:

$ sudo ufw allow syncthing

Se stai usando firewalld , quindi esegui i seguenti comandi per aprire le porte necessarie:

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

Infine, riavvia firewalld servizio per rendere effettive le modifiche:

$ sudo firewall-cmd --reload

5.3. Abilita GUI Web remota (opzionale)

La porta predefinita per la GUI web è 8384 . Puoi accedere alla GUI web di Syncthing andando all'URL http://localhost:8384 o http://127.0.0.1:8384 dal browser web.

Per impostazione predefinita, è possibile accedere alla GUI Web di Syncthing solo dall'host locale stesso. Se desideri accedere alla GUI web da altri sistemi della rete, devi consentire la porta 8384 nel tuo firewall/router locale.

Se stai usando ufw , esegui il comando seguente per consentire la syncthing-gui servizio:

$ sudo ufw allow syncthing-gui

Allo stesso modo, puoi consentire l'accesso esterno alla GUI web di Syncthing tramite firewalld come di seguito:

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

Riavvia il servizio firewalld per applicare le modifiche:

$ sudo firewall-cmd --reload

Dopo aver consentito la porta predefinita tramite firewall, modifica il GUI listen address tramite la GUI web da 127.0.0.1:83840.0.0.0:8384 :

In alternativa, modifica Syncthing config.xml file:

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

Trova la riga seguente:

<address>127.0.0.1:8384</address>

E cambialo in:

<address>0.0.0.0:8384</address>

Premi CTRL+O seguito da CTRL+X per salvare e uscire dal file.

Ora puoi accedere alla GUI web da qualsiasi macchina remota usando "https://IPAddress:8384" URL.

Avviso: Si noti che questo è facoltativo e l'abilitazione dell'accesso alla GUI Web remota non è consigliata. Questo esporrà il tuo sistema al pubblico. Abilita l'accesso alla GUI Web a tutti i sistemi solo se si trovano all'interno della rete attendibile.

Assicurati inoltre di aver configurato un utente amministratore per l'accesso alla GUI web e di aver abilitato "Usa HTTPS per GUI" opzione come descritto in precedenza.

5.4. Tunneling tramite SSH

Se entrambi i sistemi possono essere accessibili tramite SSH, è possibile accedere alla GUI Web del sistema remoto nella macchina locale tramite un tunnel SSH. È un po' più sicuro che aprire la porta della GUI Web di Syncthing al mondo esterno.

Per avviare un tunnel SSH, esegui:

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

Sostituisci "[email protected]" con il tuo nome utente remoto e indirizzo IP. Questo si legherà alla tua porta locale 9999 e inoltrerà tutte le connessioni da lì alla porta 8384 sulla macchina di destinazione. Funziona ancora anche se Syncthing è destinato ad ascoltare solo su localhost.

Ora puoi accedere alla GUI web remota dal tuo sistema locale navigando su https://localhost:9999/ .

5.5. Sincronizzazione con avvio automatico

Ogni volta che vuoi sincronizzare qualcosa, devi avviare manualmente la sincronizzazione dell'istanza. Se desideri avviarlo automaticamente ad ogni riavvio, procedi come segue.

Crea un nuovo sistema servizio per la sincronizzazione:

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

Aggiungi le seguenti righe:

[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

Sostituisci "ExecStart=/usr/local/bin/syncthing" con il percorso corretto del file eseguibile di sincronizzazione.

Se hai installato Syncthing utilizzando il gestore di pacchetti della distribuzione, il percorso eseguibile sarebbe disponibile qui - /usr/bin/syncthing .

Se syncthing è installato da binari precompilati, il percorso sarebbe "/usr/local/bin/syncthing" .

Dopo aver aggiornato il percorso corretto, salva e chiudi il file.

Quindi, ricarica systemd unità usando il comando:

$ sudo systemctl daemon-reload

Infine, avvia il servizio di sincronizzazione e abilita l'avvio automatico al riavvio del sistema:

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

Verifica se Syncthing è in esecuzione utilizzando il comando:

$ sudo systemctl status [email protected]$USER

Esempio di output dalla mia casella 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)

D'ora in poi, Syncthing si avvierà automaticamente all'avvio e sincronizzerà i file tra i sistemi configurati.

5.6. Risoluzione dei problemi

Alcune volte potresti riscontrare un errore del database e Syncthing rifiuterà di sincronizzare i file tra i dispositivi. In questi casi, è possibile eseguire nuovamente la scansione dei file e risincronizzare il database utilizzando il comando seguente:

$ syncthing -reset-database

6. Conclusione

Ora sai come sincronizzare file tra più sistemi con Syncthing in Linux. Come puoi vedere, la sincronizzazione dei file utilizzando Syncthing è abbastanza semplice e diretta.

Anche se sono disponibili molti servizi cloud per archiviare i dati, ci sono molte preoccupazioni per la privacy, la sicurezza e la mancanza di controllo sui tuoi dati preziosi.

Grazie a Syncthing, ora puoi avere una maggiore tranquillità. Non c'è un server centrale, non ci sono intercettazioni! Sei tu a controllare i tuoi dati!


Linux
  1. Ventoy:come creare un'unità USB multiboot con più file ISO

  2. Situazione orribile:file system montati contemporaneamente da più istanze Os indipendenti?

  3. Dd:file di input multipli?

  4. Utilizzo di rsync per sincronizzare i file

  5. Come installare/passare tra più versioni Java con SDKMAN

Trasferisci file e cartelle tra computer con Croc

Condividi file tra più dispositivi utilizzando Snapdrop tramite browser Web

Condividi file tra desktop Linux con Warpinator

Trasferisci file tra computer e dispositivi mobili scansionando i codici QR

Trasferisci file tra qualsiasi dispositivo utilizzando Piping Server

Come trasferire facilmente file tra desktop Linux con Warp