Поиск по сайту:

Синхронизируйте файлы между несколькими системами с помощью Syncthing

В этом пошаговом руководстве мы узнаем, что такое Syncthing, как установить Syncthing в Linux, как синхронизировать файлы между несколькими системами с помощью Syncthing в режиме реального времени и, наконец, как устранять распространенные неполадки Syncthing. проблемы.

1. Введение в синхронизацию

Syncthing — это бесплатная одноранговая (P2P) программа синхронизации файлов с открытым исходным кодом, которая позволяет безопасно синхронизировать файлы между двумя или более устройствами в локальной сети или удаленными устройствами через Интернет.

Устройство может быть настольной системой, сервером или мобильным телефоном. Изменения, внесенные на одном устройстве (т. е. создание, изменение, удаление файлов и т. д.), будут автоматически реплицированы на другие устройства.

Syncthing не требует никакой настройки! Это просто работает из коробки. Каждое устройство идентифицируется ID. Просто укажите идентификатор устройства для обмена файлами.

Поскольку это программа синхронизации файлов P2P, ваши данные не будут загружены в какое-либо общедоступное облако или центральный сервер. Syncthing просто обменивается данными между вашими устройствами, когда они одновременно находятся в сети.

Syncthing — это независимое от платформы приложение, поэтому вы можете синхронизировать файлы между несколькими компьютерами, работающими под управлением одной и той же или разных ОС, или синхронизировать файлы между компьютером и мобильным устройством, и наоборот. Также возможно синхронизировать одну папку с несколькими местами на разных устройствах.

Инструмент синхронизации файлов Syncthing написан на языке программирования Go. Он работает под GNU/Linux, Mac OS, Solaris и несколькими версиями BSD.

Существует также официальное приложение Syncthing для Android, доступное для тех, кто хочет синхронизировать файлы между мобильными устройствами и компьютерами.

Внимание! Обратите внимание, что Syncthing не поддерживает локальную синхронизацию. Это означает, что вы не можете синхронизировать файлы между папками в одной системе. Если вы хотите выполнить локальную синхронизацию, рассмотрите возможность использования rsync или unison.

1.1. Как работает Синхронизация?

Syncthing делит файлы на несколько частей, называемых Блоки, и переносит их с одного устройства на другое. Таким образом, несколько устройств могут разделять нагрузку синхронизации, аналогично торрент-протоколу. Таким образом, скорость передачи данных обычно высокая. Чем больше устройств у вас подключено к сети, тем выше скорость передачи данных.

Если содержимое файлов изменяется одновременно и различно на локальном и удаленном устройствах, это вызывает конфликт. Syncthing эффективно обрабатывает конфликты файлов, переименовывая один из файлов в .sync-conflict--.

Обычно файл с более старым временем модификации помечается как конфликтующий, а затем переименовывается. Если время модификации одинаковое, файл, исходящий от устройства, которое имеет большее значение из первых 63 бит для своего идентификатора устройства, будет помечен как конфликтующий файл.

Если конфликт возникает между модификацией и удалением файла, измененный файл будет восстановлен без переименования на том устройстве, где он был удален.

Еще одна примечательная особенность Syncthing: она никогда не записывает данные непосредственно в файл назначения. Он создает временную копию данных перед перезаписью старой версии. После успешного завершения передачи файлов временные файлы будут удалены.

Если при синхронизации файлов возникают какие-либо ошибки, временный файл по умолчанию хранится 24 часа. Вы, конечно, можете изменить эту настройку по своему усмотрению. Временные файлы называются .syncthing.original-filename.ext.tmp и по умолчанию скрыты.

Как уже говорилось, Syncthing напрямую передает файлы между двумя устройствами. Если невозможно установить прямое соединение между двумя устройствами, Syncthing соединяет их через реле.

Ретранслируемые соединения шифруются с использованием метода шифрования TLS для безопасной передачи данных между устройствами. Он использует собственный бесплатный протокол под названием Block Exchange Protocol для установления связи со всеми устройствами.

2. Функции синхронизации

Основные функции Syncthing приведены ниже:

  • Частный. Данные никогда не реплицируются где-либо еще, кроме как на настроенных устройствах.
  • Безопасность. Весь обмен данными между устройствами шифруется с помощью TLS.
  • Аутентификация. Каждое устройство идентифицируется уникальным идентификатором устройства. Идентификатор устройства используется для разрешения адресов, аутентификации и авторизации. Только устройства, которые вы явно разрешили, могут подключаться к вашему кластеру.
  • Прозрачность. Syncthing - это проект с открытым исходным кодом. Таким образом, любой может проверить его код и понять, как Syncthing находит другие активные устройства для синхронизации, как передает данные с узла на узел и как синхронизирует данные между различными устройствами.
  • Стоимость. Syncthing - это безоблачное децентрализованное приложение для обмена файлами. Нет необходимости платить за центральный сервер или облачный сервис. Итак, это совершенно бесплатно!
  • Ограничение - ограничений нет. Вы можете делиться неограниченным количеством файлов любого размера, если на ваших устройствах достаточно свободного места на диске.
  • Кроссплатформенность и портативность - Syncthing не зависит от платформы. Он работает во многих операционных системах, включая Linux, Windows, Solaris, BSD и Android.

3. Установите Syncthing в Linux

Вы должны установить Syncthing на все системы, которые вы хотите синхронизировать.

Syncthing упакован для многих дистрибутивов Linux и доступен в официальных репозиториях.

Чтобы установить Syncthing в Arch Linux и его вариантах, таких как EndeavourOS и Manjaro Linux, запустите:

sudo pacman -S syncthing

В Debian, Ubuntu:

sudo apt install syncthing

Обратите внимание, что в Ubuntu вам необходимо включить репозиторий [universe] для установки Syncthing.

В RHEL 8, CentOS 8, AlmaLinux 8, Rocky Linux 8, Fedora 31 и более поздних версиях:

Включите репозиторий [EPEL]:

sudo dnf install epel-release

А затем установите syncthing, используя следующую команду:

sudo dnf install syncthing

В выпусках CentOS 7 и 6 вы можете установить Syncthing из предварительно скомпилированных двоичных файлов, как описано в следующем разделе.

openSUSE:

sudo zypper install syncthing

3.1. Установить Syncthing из двоичных файлов

Если Syncthing недоступен в репозиториях по умолчанию, вы можете загрузить предварительно скомпилированные двоичные файлы со страницы релизов и переместить их в свой ` PATH, как показано ниже.

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

Извлеките его:

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

И переместите его в свой ` PATH, например, /usr/local/bin/.

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

Чтобы проверить, правильно ли он установлен, попробуйте отобразить его версию с помощью команды:

syncthing --version

Если вы видите результат, подобный приведенному ниже, поздравляем! Вы успешно установили Syncthing!!

syncthing v1.11.1 "Fermium Flea" (go1.15.3 linux-amd64) teamcity@build.syncthing.net 2020-11-03 11:29:54 UTC

3.2. Установите клиент syncthing-gtk

Syncthing также имеет графический пользовательский интерфейс под названием syncthing-gtk. Если вам нужны уведомления на рабочем столе и интеграция с вашими файловыми менеджерами, такими как Nautilus, Nemo, Caja, установите графический интерфейс синхронизации GTK.

Syncthing-gtk доступен в официальных репозиториях, поэтому вы также можете установить его с помощью менеджера пакетов по умолчанию вашего дистрибутива Linux. Например, чтобы установить syncthing-gtk в системах на базе Debian, выполните:

sudo apt install syncthing-gtk

Если Syncthing-gtk недоступен в официальных репозиториях, вместо этого установите приложение Flatpak. Убедитесь, что на вашем компьютере с Linux установлен Flatpak, а затем выполните следующую команду, чтобы установить syncthing-gtk:

flatpak install flathub me.kozec.syncthingtk

4. Инициализируйте Syncthing на всех устройствах.

Для целей данного руководства я буду использовать следующие две системы.

Система1:

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

System2:

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

Вы должны выполнить следующие шаги на всех системах, которые вы хотите синхронизировать.

Откройте свой терминал и запустите Syncthing, чтобы инициализировать его:

syncthing

Если Syncthing установлен с помощью Flatpak, запустите его, выполнив следующую команду:

flatpak run me.kozec.syncthingtk

Когда вы запускаете Syncthing в первый раз, он сгенерирует необходимые ключи, создаст файлы конфигурации по умолчанию и настроит папку синхронизации по умолчанию с именем "Sync" в вашем . Каталог $HOME.

Вот пример вывода моей настольной системы Ubuntu при первой инициализации 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) unknown@unknown 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

Инициализировать синхронизацию

После завершения инициализации веб-интерфейс Syncthing автоматически откроется в браузере по умолчанию:

Синхронизация веб-интерфейса

Как вы можете видеть на скриншоте выше, веб-интерфейс Syncthing очень прост для понимания и использования. Большинство опций говорят сами за себя.

Веб-интерфейс состоит из трех разделов, а именно:

  1. Папки,
  2. Это устройство,
  3. и удаленные устройства.

В разделе Папки отображается список общих папок. По умолчанию здесь указан общий каталог по умолчанию ~/Sync.

В разделе Это устройство вы найдете такую информацию, как имя компьютера, скорость загрузки/выгрузки, использование ОЗУ/ЦП, общее время работы и многое другое.

Под разделом «Устройство» есть еще один раздел под названием Удаленные устройства, в котором вы можете добавить все удаленные устройства для синхронизации. Поскольку мы еще не добавляли никаких устройств, оно отображается пустым.

В верхней части веб-интерфейса Syncthing вы можете выбрать предпочитаемый язык, открыть раздел справки и выполнить различные административные задачи на вкладке Действия.

Список того, что вы можете настроить на вкладке «Действия», приведен ниже:

  • изменить имя устройства,
  • сгенерировать ключ API,
  • минимально необходимое свободное дисковое пространство в каталоге $HOME,
  • включить или отключить анонимный отчет об использовании,
  • изменить путь к папке по умолчанию,
  • изменить адрес прослушивания графического интерфейса,
  • установить имя пользователя и пароль администратора графического интерфейса,
  • включить HTTPS,
  • установить лимит входящей и исходящей скорости,
  • добавить устройства или папки, которые нужно игнорировать при синхронизации,
  • и более.

Большинство параметров на вкладке «Действия» следует оставить нетронутыми. Конфигурации по умолчанию вполне достаточно. Если вам известны все параметры, измените их по своему желанию.

Теперь перейдите к другим системам и инициализируйте Syncthing, чтобы сгенерировать необходимые файлы конфигурации и создать папку синхронизации по умолчанию.

Вы можете просмотреть текущие настроенные пути синхронизации с помощью команды:

syncthing --paths

Пример вывода:

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. Установите имя пользователя и пароль администратора для веб-интерфейса Syncthing.

По умолчанию вы можете получить доступ к веб-интерфейсу Syncthing без имени пользователя и пароля. Чтобы сделать ваш экземпляр Syncthing немного безопасным, установите администратора и пароль.

Откройте вкладку «Действия» в правом верхнем углу и выберите «Настройки» в раскрывающемся меню.

Доступ к разделу настроек из веб-интерфейса Syncthing

На вкладке "GUI" введите имя пользователя администратора и его пароль. Убедитесь, что пароль надежный и его нетрудно угадать. Также включите параметр Использовать HTTPS для графического интерфейса.

Нажмите кнопку «Сохранить», чтобы создать учетную запись администратора.

Установите имя пользователя и пароль администратора для веб-интерфейса Syncthing.

Теперь обновите веб-браузер, и вы увидите предупреждающее сообщение о сертификате. Это потому, что мы только что включили HTTPS для веб-интерфейса.

Чтобы обойти это предупреждение, нажмите кнопку «Дополнительно», а затем выберите опцию «Принять риск и продолжить», чтобы добавить локальный хост в список исключений.

Затем введите имя пользователя администратора и его пароль для доступа к веб-интерфейсу Syncthing.

Синхронизация аутентификации пользователя через веб-интерфейс

Вы также можете запустить клиент syncthing-gtk для инициализации Syncthing.

Повторите те же действия на втором компьютере, чтобы настроить пользователя-администратора для веб-интерфейса.

5. Синхронизируйте файлы между несколькими системами с помощью Syncthing

Запустите Syncthing на обеих машинах, выполнив следующую команду:

syncthing

Веб-интерфейс Syncthing автоматически откроется в браузере по умолчанию.

Чтобы синхронизировать файлы между системами, нам нужно соединить их друг с другом, используя их Идентификатор устройства. Посмотреть идентификатор устройства можно на вкладке «Действия».

Просмотр идентификатора устройства в веб-интерфейсе синхронизации

Вот идентификатор устройства моего настольного компьютера с Ubuntu 20.04:

Идентификатор устройства системы в веб-интерфейсе Syncthing

Вам следует обменять указанный выше идентификатор с другой системой, чтобы обе системы могли взаимодействовать друг с другом.

Для этого нажмите кнопку Добавить удаленное устройство в разделе «Удаленные устройства».

Добавьте удаленное устройство в веб-интерфейс Syncthing

На следующем экране вы должны увидеть идентификатор устройства ближайшей системы. Нажмите на идентификатор устройства, чтобы связать его с вашей текущей системой.

Выберите идентификатор устройства ближайшей системы для его сопряжения

Затем перейдите на вкладку Общий доступ и выберите папки, к которым будет предоставлен доступ на текущем устройстве. При желании вы можете установить флажок «Автоматическое принятие», чтобы автоматически создавать или делиться папками, которые это устройство объявляет по пути по умолчанию. К вашему сведению, общий путь по умолчанию — ~/Sync.

Выберите папки для совместного использования с другими устройствами в веб-интерфейсе Syncthing.

На вкладке Дополнительно вы можете выбрать метод сжатия и установить ограничения скорости устройства.

Наконец, нажмите кнопку «Сохранить», чтобы связать компьютер system2 с компьютером system1.

Сопряжение устройств с использованием идентификатора устройства при синхронизации

На тот случай, если идентификатор устройства не отображается, вручную скопируйте его из system2 и вставьте сюда.

В другой системе (например, system2) вы увидите уведомление с просьбой добавить первую систему. Нажмите Добавить устройство, чтобы принять запрос и выполнить сопряжение.

Примите запрос на соединение с другого устройства в интерфейсе Syncthing.

Аналогичным образом повторите описанные выше шаги на системе system2, чтобы соединить ее с компьютером system1. После успешного сопряжения обеих систем друг с другом вы увидите их в списке в разделе Удаленные устройства веб-интерфейса Syncthing.

Просмотр удаленных устройств в интерфейсе Syncthing

Здесь "toolbox" — это имя моего рабочего стола Fedora.

Рядом с удаленным устройством появится сообщение Обновлено, а также на вкладке Папка по умолчанию на левой панели. Это означает - они готовы к синхронизации!

Чтобы просмотреть сведения об общей папке, нажмите вкладку Папка по умолчанию на левой панели, чтобы развернуть ее. Вы увидите различные сведения об общей папке, такие как;

  • идентификатор общей папки,
  • путь к общей папке,
  • состояние папки,
  • временной интервал между периодическим сканированием,
  • на какое устройство в настоящее время предоставлен общий доступ,
  • время последнего сканирования и т. д.

Просмотр сведений об общей папке в интерфейсе Syncthing

Мы закончили. Мы успешно установили и настроили Synchthing в обеих системах, и обе они связаны друг с другом.

С этого момента все, что вы поместите в папку ~/Sync на одной из систем, будет синхронизировано с другой системой. Вы можете просмотреть ход синхронизации из интерфейса Syncthing:

Просмотр хода синхронизации в интерфейсе Syncthing

Всякий раз, когда вы создаете, изменяете или удаляете что-либо из папки ~/Sync в любой из систем, изменения будут автоматически реплицированы в другую систему и наоборот.

После завершения синхронизации закройте веб-интерфейс Syncthing, а затем выйдите из команды syncthing, нажав Ctrl+C.

5.1. Создать новую общую папку

Вы можете создать несколько общих каталогов и синхронизировать их все с другими сопряженными устройствами.

Чтобы создать новый общий каталог, нажмите Добавить папку в разделе Папки слева.

На вкладке Общие введите метку папки, идентификатор папки и путь к ней, чтобы поделиться ею с другими устройствами.

Создайте новую общую папку в интерфейсе Syncthing.

Затем перейдите на вкладку Общий доступ и выберите устройства, которым будет предоставлен общий доступ к этой папке.

Выберите устройства, с которыми хотите поделиться этой папкой через интерфейс Syncthing.

Вы также можете настроить общую папку как «Только отправка», «Только получение» или «Отправка и получение». Этот параметр доступен в раскрывающемся списке Тип папки на вкладке Дополнительно.

Наконец, нажмите кнопку «Сохранить», чтобы активировать этот общий ресурс.

Выберите тип общей папки в интерфейсе Syncthing

Новый общий каталог теперь будет указан в разделе Папки. Вы можете изменить настройки общей папки в любое время, нажав кнопку Изменить.

5.2. Настроить брандмауэр

Если вы находитесь за сторонним локальным брандмауэром или маршрутизатором, разрешите портам 22000/TCP и 21027/UDP для входящего и исходящего трафика. Обратите внимание, что это необходимо сделать во всех системах.

Если вы настроили ufw (несложный брандмауэр) на своем компьютере с Linux, вы можете разрешить порты Syncthing с помощью следующей команды:

sudo ufw allow syncthing

Если вы используете firewalld, выполните следующие команды, чтобы открыть необходимые порты:

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

Наконец, перезапустите службу firewalld, чтобы изменения вступили в силу:

sudo firewall-cmd --reload

5.3. Включить удаленный веб-интерфейс (необязательно)

Порт по умолчанию для веб-интерфейса — 8384. Вы можете получить доступ к веб-интерфейсу Syncthing, перейдя по URL-адресу http://localhost:8384 или http://127.0.0.1:8384 в веб-браузере.

По умолчанию доступ к веб-интерфейсу Syncthing возможен только с самого локального хоста. Если вы хотите получить доступ к веб-интерфейсу из других систем в сети, вам следует разрешить порт 8384 в локальном брандмауэре/маршрутизаторе.

Если вы используете ufw, выполните следующую команду, чтобы разрешить службу syncthing-gui:

sudo ufw allow syncthing-gui

Аналогичным образом вы можете разрешить внешний доступ к веб-интерфейсу Syncthing через firewalld, как показано ниже:

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

Перезапустите службу firewalld, чтобы применить изменения:

sudo firewall-cmd --reload

Разрешив порт по умолчанию через брандмауэр, измените адрес прослушивания графического интерфейса через веб-интерфейс с 127.0.0.1:8384 на 0.0.0.0:8384 :

Измените адрес прослушивания графического интерфейса через веб-интерфейс Syncthing

Либо отредактируйте файл Syncthing config.xml:

nano ~/.config/syncthing/config.xml

Найдите следующую строку:

<address>127.0.0.1:8384</address>

И измените его на:

<address>0.0.0.0:8384</address>

Нажмите CTRL+O, а затем CTRL+X, чтобы сохранить и выйти из файла.

Теперь вы можете получить доступ к веб-интерфейсу с любого удаленного компьютера, используя URL-адрес "https://IPAddress:8384".

Внимание! Обратите внимание, что это необязательно и включение удаленного доступа к веб-интерфейсу не рекомендуется. Это сделает вашу систему общедоступной. Включите доступ через веб-интерфейс ко всем системам, только если они находятся внутри доверенной сети.

Также убедитесь, что вы настроили администратора для входа в веб-интерфейс и включили параметр Использовать HTTPS для графического интерфейса, как описано ранее.

5.4. Туннелирование через SSH

Если обе системы доступны через SSH, вы можете получить доступ к веб-интерфейсу удаленной системы на своем локальном компьютере через туннель SSH. Это немного безопаснее, чем открывать порт веб-интерфейса Syncthing для внешнего мира.

Чтобы запустить SSH-туннель, выполните:

ssh -L 9999:127.0.0.1:8384 sk@192.168.225.46

Замените "sk@192.168.225.46" на свое удаленное имя пользователя и IP-адрес. Это привяжется к вашему локальному порту 9999 и перенаправит все соединения оттуда на порт 8384 на целевом компьютере. Это по-прежнему работает, даже если Syncthing должен прослушивать только локальный хост.

Теперь вы можете получить доступ к удаленному веб-интерфейсу из вашей локальной системы, перейдя по адресу https://localhost:9999/.

5.5. Автозапуск синхронизации

Всякий раз, когда вы хотите что-то синхронизировать, вам нужно вручную запустить экземпляр синхронизации. Если вы хотите запускать его автоматически при каждой перезагрузке, сделайте следующее.

Создайте новый сервис systemd для синхронизации:

sudo nano /etc/systemd/system/syncthing@.service

Добавьте в него следующие строки:

[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

Замените "ExecStart=/usr/local/bin/syncthing" правильным путем к исполняемому файлу syncthing.

Если вы установили Syncthing с помощью менеджера пакетов дистрибутива, путь к исполняемому файлу будет доступен здесь — /usr/bin/syncthing.

Если syncthing установлен из предварительно скомпилированных двоичных файлов, путь будет таким: "/usr/local/bin/syncthing".

После обновления правильного пути сохраните и закройте файл.

Затем перезагрузите модули systemd с помощью команды:

sudo systemctl daemon-reload

Наконец, запустите службу синхронизации и включите автоматический запуск при перезагрузке системы:

sudo systemctl start syncthing@$USER
sudo systemctl enable syncthing@$USER

Проверьте, запущена ли Syncthing, с помощью команды:

sudo systemctl status syncthing@$USER

Пример вывода из моего окна CentOS:

● syncthing@ostechnix.service - Syncthing - Open Source Continuous File Synchronization for ostechnix
   Loaded: loaded (/etc/systemd/system/syncthing@.service; 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/syncthing@ostechnix.service
           ├─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]: syncthing@ostechnix.service: Service RestartSec=100ms expired, scheduling restart.
Nov 24 18:07:34 centos8.ostechnix.lan systemd[1]: syncthing@ostechnix.service: 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) teamcity@>
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)

С этого момента Syncthing будет автоматически запускаться при запуске и синхронизировать файлы между настроенными системами.

5.6. Поиск неисправностей

Иногда вы можете столкнуться с ошибкой базы данных, и Syncthing откажется синхронизировать файлы между устройствами. В таких случаях вы можете принудительно пересканировать файлы и повторно синхронизировать базу данных с помощью следующей команды:

syncthing -reset-database

6. Заключение

Теперь вы знаете, как синхронизировать файлы между несколькими системами с помощью Syncthing в Linux. Как видите, синхронизация файлов с помощью Syncthing довольно проста и понятна.

Несмотря на то, что существует множество облачных сервисов для хранения данных, существует множество опасений по поводу конфиденциальности, безопасности и отсутствия контроля над вашими ценными данными.

Благодаря Syncthing вы теперь можете быть более спокойны. Центрального сервера нет, подслушивания нет! Вы сами контролируете свои данные!

Ресурсы:

  • Сайт синхронизации
  • Синхронизация репозитория GitHub

Связанное чтение:

  • Как синхронизировать файлы с Unison в Linux
  • Как синхронизировать локальные и удаленные каталоги в Linux
  • Как создать резервную копию файлов и каталогов с помощью Rsync в Linux
  • Как настроить сервер резервного копирования с помощью Rsnapshot в Linux
  • Как создать резервную копию и восстановить файлы с помощью Deja Dup в Linux
  • Как синхронизировать файлы и каталоги с помощью Zaloha.sh
  • CYA - утилита для создания снимков и восстановления системы для Linux
  • Restic - быстрое, безопасное и эффективное приложение для резервного копирования

Статьи по данной тематике