Categories: linux

syncthing/

Syncthing — бесплатное приложение с открытым исходным кодом, написанное на языке Go , и представляющее собой standalone замену Dropbox, Google Drive и подобным облачным хранилищам. Вы ставите Syncthing, скажем, на ноутбуке, мобильном телефоне и на сервере в DigitalOcean . Указываете путь до каталогов, которые хотите синхронизировать. Теперь при изменении файлов на ноутбуке аналогичные изменения магическим образом происходят и на сервере, а также в мобильном телефоне. Клиент Syncthing доступен под все мыслимые платформы, включая Windows, Linux, FreeBSD, MacOS, iOS и Android. В этой заметке мы рассмотрим пример использования Syncthing под Ubuntu Linux.

Для начала установим Syncthing на сервере. Управление приложением осуществляется через веб-инетрфейс, доступный на порту 8384. Поэтому для сервера в ~/.ssh/config можно сразу дописать что-то вроде:

LocalForward 8385 localhost:8384

Затем выполняем на сервере команды:

curl -s https: // syncthing.net / release-key.txt |
sudo apt-key add
echo «deb http://apt.syncthing.net/ syncthing release» |
sudo tee / etc / apt / sources.list.d / syncthing.list
sudo apt-get update
sudo apt-get install syncthing

Готовим каталог, где будут хранится все настройки Syncthing:

mkdir syncthing
cd syncthing
touch run.sh
chmod u+x run.sh

В run.sh пишем:

#!/bin/sh

/ usr / bin / syncthing -no-browser -home = / home / eax / syncthing

Запускаем screen , в нем запускаем run.sh, делаем detach. Конечно, при желании можно написать и init.d скрипт, но я не стал так заморачиваться. Дело в том, что этом же сервере у меня крутится VPN . В случае перезапуска сервера мне все равно приходится заходить на него и запускать VPN руками, так как для его запуска требуется знать пароль от сертификата. Мне нет большой разницы, перезапускать руками условно раз в год один сервис или два.

На своей машине идем на http://localhost:8385/ и видим красивую веб-мордочку:

У вас, конечно, поначалу она будет выглядеть немного не так. Ведь еще нужно добавить каталоги, которые вы хотели бы синхронизировать (это не тот каталог, который мы создавали ранее!). Ну и, конечно же, добавить устройства.

На ноутбуке у меня тоже Ubuntu, поэтому настройка там выглядит точно так же. Только вместо screen я воспользовался GUI-клиентом к Syncthing под названием syncthing-gtk. Штука эта поначалу показалось мне немного глюкавой, но со второй или третей попытки мне удалось настроить ее, как нужно. Дело в том, что по умолчанию syncthing-gtk ищет GUI API на порту 8080. Когда я изменил настройки Syncthing соответствующим образом, все заработало. Теперь при изменении файлов у меня появляются нотификации, а в трее постоянно висит иконка, свидетельствующая о том, что Syncthing работает:

Добавление устройств и каталогов делается очевидным образом через GUI- и/или Web-интерфейс, поэтому здесь я на них подробным образом не останавливаюсь.

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

Дополнение: Также вместо использования syncthing-gtk вы можете прописать Syncthing на автозапуск, просто создав файл ~/.config/upstart/syncthing.conf примерно такого содержания:

start on desktop-start
stop on desktop-end
env STNORESTART=yes
respawn
exec /home/eax/syncthing/run.sh

В заключение хочется отметить следующее:

  • Подумайте, как это круто — пять минут работы, и в нашей жизни становится одним SaaS’ом меньше;
  • Перед Syncthing пробовал использовать обычный rsync, но в случае переименования файлов и каталогов он их перезаливает полностью;
  • Заметьте, что Syncthing для запуска и работы не требуются права суперпользователя;
  • Так как Syncthing написан на Go, он распространяется в виде одного бинарника, так что для установки права суперпользователя на самом деле тоже не нужны;

А используете ли вы Syncthing и если все еще нет, то почему? 🙂

Дополнение: Памятка по использованию WebDAV

admin

Share
Published by
admin
Tags: Linux

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

1 месяц ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

1 месяц ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

1 месяц ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

1 месяц ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

1 месяц ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

1 месяц ago