GNU/Linux >> Tutoriales Linux >  >> Linux

Sincronice archivos entre múltiples sistemas con Syncthing

En este tutorial paso a paso, vamos a aprender qué es Syncthing , cómo instalar Syncthing en Linux, cómo sincronizar archivos entre múltiples sistemas con Syncthing en tiempo real y, finalmente, cómo solucionar problemas comunes de Syncthing.

1. Introducción a la sincronización

Syncthing es un programa gratuito de sincronización de archivos punto a punto (P2P) de código abierto que le permite sincronizar archivos de forma segura entre dos o más dispositivos dentro de LAN o dispositivos remotos a través de Internet.

El dispositivo podría ser un sistema de escritorio, un servidor o un teléfono móvil. Los cambios realizados en un dispositivo (es decir, creación, modificación y eliminación de archivos, etc.) se replicarán automáticamente en otros dispositivos.

Syncthing no necesita ninguna configuración! Simplemente funciona fuera de la caja. Cada dispositivo se identifica con un ID . Simplemente proporcione la identificación del dispositivo para intercambiar archivos.

Dado que es un programa de sincronización de archivos P2P, sus datos no se cargarán en ninguna nube pública o servidor central. Syncthing simplemente intercambia los datos entre sus dispositivos cuando están en línea al mismo tiempo.

Syncthing es una aplicación independiente de la plataforma, por lo que puede sincronizar archivos entre varias computadoras que se ejecutan con el mismo sistema operativo o uno diferente, o sincronizar archivos entre una computadora y un dispositivo móvil y viceversa. También es posible sincronizar una sola carpeta con varias ubicaciones en diferentes dispositivos.

La herramienta de sincronización de archivos Syncthing está escrita en Go lenguaje de programación. Funciona bajo GNU/Linux, Mac OS, Solaris y varias versiones de BSD.

También hay una aplicación oficial de Android Syncthing disponible para aquellos que quieran sincronizar archivos entre dispositivos móviles y computadoras.

Aviso: Tenga en cuenta que Syncthing no admite la sincronización local . Significado:no puede sincronizar archivos entre carpetas en el mismo sistema. Si desea realizar una sincronización local, considere usar rsync o unísono .

1.1. ¿Cómo funciona la sincronización?

Syncthing divide los archivos en múltiples piezas llamadas Bloques y transferirlos de un dispositivo a otro. Por lo tanto, varios dispositivos pueden compartir la carga de sincronización, de forma similar a un protocolo de torrent. Por lo tanto, la tasa de transferencia de datos suele ser rápida. Cuantos más dispositivos tenga en línea, más rápida será la tasa de transferencia de datos.

Si el contenido de los archivos se cambia simultáneamente y es diferente en los dispositivos locales y remotos, se genera un conflicto. Syncthing maneja los conflictos de archivos de manera eficiente cambiando el nombre de uno de los archivos a <filename>.sync-conflict-<date>-<time>-<modifiedBy>.<ext> .

Por lo general, el archivo con la hora de modificación más antigua se marcará como el archivo en conflicto y luego se le cambiará el nombre. Si los tiempos de modificación son iguales, el archivo que se origina en el dispositivo que tiene el mayor valor de los primeros 63 bits para su device ID se marcará como el archivo en conflicto.

Si el conflicto es entre una modificación y una eliminación del archivo, el archivo modificado se restaurará sin cambiar el nombre en el dispositivo donde se eliminó.

Otra cosa notable de Syncthing es que nunca escribe directamente en un archivo de destino. Hace una copia temporal de los datos antes de sobrescribir la versión anterior. Una vez que la transferencia de archivos se complete con éxito, los archivos temporales se eliminarán.

Si hay algún error durante la sincronización de archivos, el archivo temporal se conserva durante 24 horas de forma predeterminada. Por supuesto, puede cambiar esta configuración según su conveniencia. Los archivos temporales se denominan .syncthing.original-filename.ext.tmp y están ocultos por defecto.

Como ya se dijo, Syncthing transfiere archivos directamente entre dos dispositivos. Cuando no es posible establecer una conexión directa entre los dos dispositivos, Syncthing los conecta a través de un relé .

Las conexiones retransmitidas se cifran mediante TLS método de cifrado para transferir datos de forma segura entre los dispositivos. Utiliza su propio protocolo gratuito, llamado Block Exchange Protocol para establecer comunicación con todos los dispositivos.

2. Funciones de sincronización

Las funciones principales de Syncthing se indican a continuación:

  • Privado - Los datos nunca se replican en ningún otro lugar que no sea en los dispositivos configurados.
  • Seguro - Toda la comunicación entre dispositivos está encriptada con TLS.
  • Autenticación - Cada dispositivo se identifica mediante un ID de dispositivo único. El ID del dispositivo se utiliza para la resolución, autenticación y autorización de direcciones. Solo los dispositivos que ha permitido explícitamente pueden conectarse a su clúster.
  • Transparencia - Syncthing es un proyecto de código abierto. De modo que cualquiera puede inspeccionar su código y comprender cómo Syncthing encuentra otros dispositivos activos para sincronizar, cómo transfiere datos de nodo a nodo y cómo sincroniza datos entre diferentes dispositivos.
  • Coste - Syncthing es una aplicación para compartir archivos descentralizada y sin nubes. No hay un servidor central o un servicio en la nube que pagar. Entonces, ¡es completamente gratis!
  • Limitación - No hay límite. Puede compartir una cantidad ilimitada de archivos de cualquier tamaño siempre que tenga suficiente espacio libre en el disco de sus dispositivos.
  • Multiplataforma y portátil - La sincronización es independiente de la plataforma. Funciona en muchos sistemas operativos, incluidos Linux, Windows, Solaris, BSD y Android.

3. Instalar sincronización en Linux

Debe instalar Syncthing en todos los sistemas que desee mantener sincronizados.

Syncthing está empaquetado para muchas distribuciones de Linux y está disponible en los repositorios oficiales.

Para instalar Syncthing en Arch Linux y sus variantes como EndeavourOS y Manjaro Linux, ejecute:

$ sudo pacman -S syncthing

En Debian, Ubuntu:

$ sudo apt install syncthing

Tenga en cuenta que en Ubuntu, debe habilitar [universe] repositorio para instalar Syncthing.

En RHEL 8, CentOS 8, AlmaLinux 8, Rocky Linux 8, Fedora 31 y versiones más recientes:

Habilitar [EPEL] repositorio:

$ sudo dnf install epel-release

Y luego instale syncthing usando el siguiente comando:

$ sudo dnf install syncthing

En las ediciones CentOS 7 y 6, puede instalar Syncthing desde binarios precompilados como se describe en la siguiente sección.

abrir SUSE:

$ sudo zypper install syncthing

3.1. Instalar Syncthing desde binarios

Si Syncthing no está disponible en los repositorios predeterminados, puede descargar los binarios precompilados desde la página de versiones. y muévalo a su $PATH como se muestra a continuación.

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

Extraerlo:

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

Y muévelo a tu $PATH , por ejemplo /usr/local/bin/ .

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

Para verificar si está instalado correctamente, intente mostrar su versión usando el comando:

$ syncthing --version

Si ve un resultado como el siguiente, ¡felicidades! ¡Has instalado Syncthing con éxito!

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

3.2. Instalar el cliente syncthing-gtk

Syncthing también tiene una interfaz gráfica de usuario llamada syncthing-gtk . Si desea notificaciones de escritorio e integración con sus administradores de archivos como Nautilus, Nemo, Caja, instale la interfaz gráfica syncthing GTK.

Syncthing-gtk está disponible en los repositorios oficiales, por lo que también puede instalarlo utilizando el administrador de paquetes predeterminado de su distribución de Linux. Por ejemplo, para instalar syncthing-gtk en sistemas basados ​​en Debian, ejecute:

$ sudo apt install syncthing-gtk

Si Syncthing-gtk no está disponible en los repositorios oficiales, obtenga la aplicación flatpak en su lugar. Asegúrate de tener flatpak instalado en su máquina Linux y luego ejecute el siguiente comando para instalar syncthing-gtk:

$ flatpak install flathub me.kozec.syncthingtk

4. Inicializar Syncthing en todos los dispositivos

A los efectos de esta guía, usaré los siguientes dos sistemas.

Sistema 1:

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

Sistema 2:

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

Debe realizar los siguientes pasos en todos los sistemas que desee mantener sincronizados.

Abre tu Terminal y ejecuta Syncthing para inicializarlo:

$ syncthing

Si Syncthing está instalado usando flatpak, inícielo ejecutando este comando:

$ flatpak run me.kozec.syncthingtk

Cuando ejecute Syncthing por primera vez, generará las claves necesarias, creará archivos de configuración predeterminados y configurará una carpeta de sincronización predeterminada llamada "Sync" en tu $HOME directorio.

Aquí hay una salida de muestra de mi sistema de escritorio Ubuntu al inicializar Syncthing por primera vez:

[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 vez que se complete la inicialización, la GUI web de Syncthing se abrirá automáticamente en su navegador predeterminado:

Como puede ver en la captura de pantalla anterior, la interfaz web de Syncthing es muy fácil de entender y usar. La mayoría de las opciones se explican por sí mismas.

La interfaz web tiene tres secciones, a saber,

  1. Carpetas,
  2. Este dispositivo,
  3. y dispositivos remotos.

Las "Carpetas" La sección muestra la lista de carpetas compartidas. De forma predeterminada, el directorio compartido predeterminado ~/Sync aparece aquí.

En "Este dispositivo" En la sección, encontrará detalles como el nombre de la computadora, la velocidad de carga/descarga, la utilización de RAM/CPU, el tiempo total de actividad y algunos más.

Debajo de la sección "El dispositivo", hay otra sección llamada "Dispositivos remotos" sección donde puede agregar todos los dispositivos remotos para sincronizar. Como aún no agregamos ningún dispositivo, se muestra vacío.

En la parte superior de la interfaz web de Syncthing, puede elegir su idioma preferido, abrir la sección de ayuda y realizar varias tareas administrativas en Acciones. pestaña.

La lista de cosas que puede configurar desde la pestaña "Acciones" se proporciona a continuación:

  • cambiar el nombre del dispositivo,
  • generar clave API,
  • espacio libre en disco mínimo requerido en el directorio $HOME,
  • habilitar o deshabilitar el informe de uso anónimo,
  • cambiar la ruta de la carpeta predeterminada,
  • cambiar la dirección de escucha de la GUI,
  • establecer nombre de usuario y contraseña de administrador de GUI,
  • habilitar HTTPS,
  • establecer límite de velocidad entrante y saliente,
  • añadir dispositivos o carpetas para ignorar de la sincronización,
  • y más.

La mayoría de las opciones en la pestaña Acciones deben dejarse intactas. La configuración predeterminada es suficiente. Si está familiarizado con todas las opciones, cámbielas según sus deseos.

Ahora, vaya a los otros sistemas e inicialice Syncthing para generar los archivos de configuración necesarios y cree una carpeta de sincronización predeterminada.

Puede ver las rutas de sincronización actualmente configuradas usando el comando:

$ syncthing --paths

Salida de muestra:

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. Establezca el nombre de usuario y la contraseña administrativos para la GUI web de Syncthing

De forma predeterminada, puede acceder a la GUI web de Syncthing sin ningún nombre de usuario ni contraseña. Para hacer que su instancia de Syncthing sea un poco segura, configure un usuario administrativo y una contraseña.

Haga clic en "Acciones" en la esquina superior derecha y elige "Configuración" del menú desplegable.

Bajo la "GUI" pestaña, ingrese su nombre de usuario administrativo y su contraseña. Asegúrese de que la contraseña sea segura y no sea más fácil de adivinar. Habilite también "Usar HTTPS para GUI" opción.

Haga clic en el botón Guardar para crear la cuenta de usuario administrador.

Ahora actualice su navegador web y verá un mensaje de advertencia de certificado. Esto se debe a que acabamos de habilitar HTTPS para la GUI web.

Para omitir esta advertencia, haga clic en "Avanzado" y luego haga clic en "Aceptar el riesgo y continuar" opción para agregar su host local a la lista de excepciones.

A continuación, ingrese el nombre de usuario administrativo y su contraseña para acceder a la GUI web de Syncthing.

También puede iniciar el cliente syncthing-gtk para inicializar Syncthing.

Repita los mismos pasos en la segunda máquina para configurar el usuario administrador para la GUI web.

5. Sincronice archivos entre múltiples sistemas con Syncthing

Inicie Syncthing en ambas máquinas ejecutando este comando:

$ syncthing

La interfaz gráfica de usuario web de Syncthing se abrirá automáticamente en el navegador predeterminado.

Para sincronizar archivos entre sistemas, debemos vincularlos entre sí usando su device ID . Puede ver el ID del dispositivo en la pestaña "Acciones".

Aquí está la identificación del dispositivo de mi máquina de escritorio Ubuntu 20.04:

Debe intercambiar la identificación anterior con otro sistema para que los dos sistemas se comuniquen entre sí.

Para hacerlo, haga clic en "Agregar dispositivo remoto" botón de la sección Dispositivos remotos.

Debería ver la identificación del dispositivo del sistema cercano en la siguiente pantalla. Haga clic en el ID del dispositivo para emparejarlo con su sistema actual.

A continuación, vaya a "Compartir" y seleccione las carpetas para compartir con el dispositivo actual. Opcionalmente, puede marcar la opción "Aceptar automáticamente" para crear o compartir carpetas automáticamente que este dispositivo anuncia en la ruta predeterminada. FYI, la ruta compartida predeterminada es ~/Sync .

En el "Avanzado" pestaña, puede elegir el método de compresión y establecer los límites de velocidad del dispositivo.

Finalmente, haga clic en "Guardar" botón para emparejar el sistema 2 con la máquina del sistema 1.

En caso de que no se muestre el ID del dispositivo, cópielo manualmente del sistema2 y péguelo aquí.

En otro sistema (es decir, system2), verá un mensaje de notificación que le pedirá que agregue el primer sistema. Haga clic en "Agregar dispositivo" para aceptar la solicitud y emparejarlos.

Del mismo modo, repita los pasos anteriores en el sistema 2 para emparejarlo con la máquina del sistema 1. Una vez que haya emparejado con éxito ambos sistemas entre sí, los verá en la lista debajo de "Dispositivos remotos" sección en la interfaz web de Syncthing.

Aquí, "caja de herramientas" es el nombre de mi escritorio Fedora.

También obtendrá el "Actualizado" junto al dispositivo remoto y también a la "Carpeta predeterminada" pestaña en el panel izquierdo. Es decir, ¡están listos para sincronizarse!

Para ver los detalles de la carpeta compartida, haga clic en "Carpeta predeterminada" en el panel izquierdo para expandirlo. Verá varios detalles de la carpeta compartida como;

  • ID de carpeta compartida,
  • ruta de la carpeta compartida,
  • estado de la carpeta,
  • intervalo de tiempo entre análisis periódicos,
  • con qué dispositivo se comparte actualmente,
  • la hora del último escaneo, etc.

Ya hemos terminado. Hemos instalado y configurado correctamente Synchthing en ambos sistemas y ambos están emparejados entre sí.

A partir de ahora, lo que pongas en ~/Sync La carpeta en uno de los sistemas se sincronizará con el otro sistema. Puede ver el progreso de la sincronización desde la interfaz de sincronización:

Siempre que cree, modifique o elimine algo del ~/Sync carpeta en cualquiera de los sistemas, los cambios se replicarán automáticamente en otro sistema y viceversa.

Una vez que se complete la sincronización, cierre la interfaz web de Syncthing y luego salga de syncthing comando presionando Ctrl+C .

5.1. Crear una nueva carpeta compartida

Puede crear varios directorios compartidos y sincronizarlos todos con otros dispositivos emparejados.

Para crear un nuevo directorio compartido, haga clic en "Agregar carpeta" en "Carpetas" sección de la izquierda.

En el "General" pestaña, ingrese la etiqueta de la carpeta, la identificación de la carpeta y la ruta de la carpeta para compartir con otros dispositivos.

A continuación, vaya a "Compartir" y seleccione los dispositivos para compartir esta carpeta.

También puede configurar una carpeta compartida como Solo envío o Solo recepción o Enviar y recibir. Esta opción está disponible en "Tipo de carpeta" cuadro desplegable en "Avanzado" pestaña.

Finalmente haga clic en "Guardar" botón para activar este recurso compartido.

El nuevo directorio compartido ahora aparecerá debajo de "Carpetas" sección. Puede cambiar la configuración de la carpeta compartida en cualquier momento haciendo clic en "Editar" botón.

5.2. Configurar cortafuegos

Si está detrás de un enrutador o cortafuegos local de terceros, permita los puertos 22000/TCP y 21027/UDP para el tráfico entrante y saliente. Tenga en cuenta que debe hacer esto en todos los sistemas.

Si ha configurado ufw (firewall sin complicaciones) en su máquina Linux, puede habilitar los puertos Syncthing usando el siguiente comando:

$ sudo ufw allow syncthing

Si está utilizando firewalld , luego ejecute los siguientes comandos para abrir los puertos necesarios:

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

Finalmente, reinicie firewalld servicio para hacer efectivos los cambios:

$ sudo firewall-cmd --reload

5.3. Habilitar la GUI web remota (opcional)

El puerto predeterminado para la GUI web es 8384 . Puede acceder a la GUI web de Syncthing navegando a la URL http://localhost:8384 o http://127.0.0.1:8384 desde el navegador web.

De forma predeterminada, solo se puede acceder a la GUI web de Syncthing desde el propio servidor local. Si desea acceder a la GUI web desde otros sistemas en la red, debe permitir el puerto 8384 en su cortafuegos/enrutador local.

Si está utilizando ufw , ejecute el siguiente comando para permitir que syncthing-gui servicio:

$ sudo ufw allow syncthing-gui

Del mismo modo, puede permitir el acceso externo a la GUI web de Syncthing a través de firewalld como a continuación:

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

Reinicie el servicio firewalld para aplicar los cambios:

$ sudo firewall-cmd --reload

Después de permitir el puerto predeterminado a través del firewall, cambie la GUI listen address a través de la GUI web desde 127.0.0.1:83840.0.0.0:8384 :

Alternativamente, edite Syncthing config.xml archivo:

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

Busque la siguiente línea:

<address>127.0.0.1:8384</address>

Y cámbialo a:

<address>0.0.0.0:8384</address>

Presiona CTRL+O seguido de CTRL+X para guardar y salir del archivo.

Ahora puede acceder a la GUI web desde cualquier máquina remota usando "https://IPAddress:8384" URL.

Aviso: Tenga en cuenta que esto es opcional y no se recomienda habilitar el acceso remoto a la GUI web. Esto expondrá su sistema al público. Habilite el acceso de la GUI web a todos los sistemas solo si están dentro de la red de confianza.

También asegúrese de haber configurado un usuario administrador para iniciar sesión en la GUI web y habilitado "Usar HTTPS para GUI" opción como se describe anteriormente.

5.4. Tunelización a través de SSH

Si se puede acceder a ambos sistemas a través de SSH, puede acceder a la GUI web del sistema remoto en su máquina local a través de un túnel SSH. Es un poco más seguro que abrir el puerto web gui de Syncthing al mundo exterior.

Para iniciar un túnel SSH, ejecute:

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

Reemplazar "[email protected]" con su nombre de usuario remoto y dirección IP. Esto se vinculará a su puerto local 9999 y reenviará todas las conexiones desde allí al puerto 8384 en la máquina de destino. Esto aún funciona incluso si Syncthing está obligado a escuchar solo en localhost.

Ahora puede acceder a la GUI web remota desde su sistema local navegando a https://localhost:9999/ .

5.5. Sincronización de inicio automático

Siempre que desee sincronizar algo, debe iniciar manualmente la instancia de sincronización. Si desea iniciarlo automáticamente en cada reinicio, haga lo siguiente.

Crear un nuevo systemd servicio de sincronización:

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

Agregue las siguientes líneas en él:

[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

Reemplace "ExecStart=/usr/local/bin/syncthing" con la ruta correcta del archivo ejecutable de sincronización.

Si instaló Syncthing usando el administrador de paquetes de la distribución, la ruta del ejecutable estaría disponible aquí:/usr/bin/syncthing .

Si syncthing se instala desde binarios precompilados, la ruta sería "/usr/local/bin/syncthing" .

Después de actualizar la ruta correcta, guarde y cierre el archivo.

A continuación, vuelva a cargar systemd unidades usando el comando:

$ sudo systemctl daemon-reload

Finalmente, inicie el servicio de sincronización y habilítelo para que se inicie automáticamente al reiniciar el sistema:

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

Verifique si Syncthing se está ejecutando usando el comando:

$ sudo systemctl status [email protected]$USER

Salida de muestra de mi caja de 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)

A partir de ahora, Syncthing comenzará automáticamente al inicio y sincronizará los archivos entre los sistemas configurados.

5.6. Solución de problemas

Algunas veces puede encontrar un error en la base de datos y Syncthing se negará a sincronizar los archivos entre dispositivos. En tales casos, puede volver a escanear los archivos a la fuerza y ​​volver a sincronizar la base de datos con el siguiente comando:

$ syncthing -reset-database

6. Conclusión

Ahora sabe cómo sincronizar archivos entre múltiples sistemas con Syncthing en Linux. Como puede ver, la sincronización de archivos usando Syncthing es bastante fácil y directa.

Aunque hay muchos servicios en la nube disponibles para almacenar los datos, existen muchas preocupaciones sobre la privacidad, la seguridad y la falta de control sobre sus valiosos datos.

Gracias a Syncthing, ahora puedes tener una mayor tranquilidad. ¡No hay un servidor central, no hay escuchas! ¡Tú controlas tus propios datos!


Linux
  1. CloudCross:sincronice archivos y directorios con múltiples almacenamientos en la nube

  2. EasyJoin:envíe archivos entre su teléfono y PC sin Internet

  3. Cómo instalar/cambiar entre varias versiones de Java con SDKMAN

  4. Cola múltiples archivos remotos

  5. ¿Cómo compartir activos entre múltiples servidores web?

Transferir archivos y carpetas entre computadoras con Croc

Comparta archivos entre varios dispositivos usando Snapdrop a través del navegador web

Comparte archivos entre escritorios Linux con Warpinator

Transfiera archivos entre computadoras y dispositivos móviles escaneando códigos QR

Transferir archivos entre cualquier dispositivo utilizando Piping Server

Cómo transferir archivos fácilmente entre escritorios Linux con Warp