Я имею:
сервер Linux, который я подключаю через SSH по IP-порту 203.0.113.0, порт 1234
домашний компьютер (за маршрутизатором), общедоступный IP-адрес 198.51.100.17, который является либо Debian, либо Windows + Cygwin
Как проще всего /home/inprogress/
синхронизировать папку (в обоих направлениях), что-то вроде rsync
, но с наблюдателем файловой системы , чтобы каждый раз, когда файл был изменен, он сразу же копировался на другой стороне? (т.е. нет необходимости вручную вызывать программу синхронизации)
Я ищу решение для командной строки / без графического интерфейса, так как сервер безголовый.
Есть ли встроенное решение для Linux / Debian?
syncthing
.lsync
, но я не знаю, насколько это полезно для двунаправленной синхронизации.Ответы:
После комментария @ Kusalananda я, наконец, потратил несколько часов на тестирование Syncthing для этого варианта использования, и он отлично работает. Он автоматически обнаруживает изменения с обеих сторон, и репликация выполняется очень быстро.
Пример: представьте, что вы работаете локально
server.py
в своем любимом программном обеспечении Notepad, вы нажали CTRL + S (Сохранить). Через несколько секунд он автоматически реплицируется на удаленный сервер (без всплывающего диалога).Одна замечательная вещь, которую я заметил, это то, что вам не нужно думать об IP-адресе домашнего компьютера и сервера с помощью Syncthing: каждое «устройство» (компьютер, сервер, телефон и т. Д.) Имеет уникальный DeviceID, и если вы предоставляете общий доступ по идентификатору другого устройства он автоматически узнает, как они должны соединяться друг с другом.
Сделать:
Сторона домашнего компьютера (Windows или Linux):
Используйте обычный инструмент настройки синхронизации в браузере
Сторона VPS:
Сначала подключите VPS с переадресацией портов:
Последний вариант перенаправит средство веб-конфигурации Syntshing VPS, прослушивающее порт 8384, на порт 8385 домашнего компьютера.
Затем запустите это на VPS:
Затем в браузере домашнего компьютера откройте http: // localhost: 8385 : это будет конфигурация синхронизации VPS!
Другое решение, которое я пробовал:
SSHFS, используя этот учебник . Обратите внимание, что в этом уроке они не используют sshfs-win, а вместо этого win-sshfs (это два разных проекта). Я попробовал оба, и я не мог заставить ни одного из них работать (вероятно, проблема с моей конфигурацией VPS).
Вот еще одна интересная ссылка: /softwarerecs/13875/windows-sshfs-sftp-mounting-clients
Дополнительные преимущества Syncthing, которые я только что заметил:
Вы можете уменьшить
fsWatcherDelayS
значениеconfig.xml
от10
до2
секунд, чтобы после выполнения сочетания клавиш CTRL + S через 2 секунды (+ время загрузки, т. е. менее 1 секунды для небольшого текстового файла) он находился на другом компьютере.если вы синхронизируете два компьютера, которые находятся в одной локальной сети (просто передавая DeviceID друг другу, не нужно заботиться о локальных IP-адресах), он автоматически заметит, что ему не нужно проходить через Интернет, но это может иметь дело локально Это замечательно и обеспечивает очень быструю синхронизацию передачи данных (4 МБ / с!) Для
phone <--> computer
обоих, подключенных к одному домашнему маршрутизатору через WiFi ... ... тогда как он будет зависать на скорости 100 КБ / с в ADSL с синхронизацией Dropbox ! (мой ADSL ограничен на 100 КБ / с при загрузке)источник
Похоже, Unison должен делать эту работу.
Он имеет дополнительный графический интерфейс, который может несколько облегчить разрешение конфликтов, но все это также можно сделать с помощью текстового пользовательского интерфейса. Вы также можете заранее определить, как разрешать конфликты для полностью автоматической работы.
Существует компонент для отслеживания файлов (fsmonitor), который запускает синхронизацию при необходимости. Ищите «повторить часы» в руководстве для деталей.
Похоже, что Debian имеет нужную версию (2.48+), упакованную из коробки .
источник