После комментария @ Kusalananda я, наконец, потратил несколько часов на тестирование Syncthing для этого варианта использования, и он отлично работает. Он автоматически обнаруживает изменения с обеих сторон, и репликация выполняется очень быстро.
Пример: представьте, что вы работаете локально server.py
в своем любимом программном обеспечении Notepad, вы нажали CTRL + S (Сохранить). Через несколько секунд он автоматически реплицируется на удаленный сервер (без всплывающего диалога).
Одна замечательная вещь, которую я заметил, это то, что вам не нужно думать об IP-адресе домашнего компьютера и сервера с помощью Syncthing: каждое «устройство» (компьютер, сервер, телефон и т. Д.) Имеет уникальный DeviceID, и если вы предоставляете общий доступ по идентификатору другого устройства он автоматически узнает, как они должны соединяться друг с другом.
Сделать:
Сторона домашнего компьютера (Windows или Linux):
Используйте обычный инструмент настройки синхронизации в браузере
Сторона VPS:
Сначала подключите VPS с переадресацией портов:
ssh <user>@<VPS_IP> -L 8385:localhost:8384
Последний вариант перенаправит средство веб-конфигурации Syntshing VPS, прослушивающее порт 8384, на порт 8385 домашнего компьютера.
Затем запустите это на VPS:
wget https://github.com/syncthing/syncthing/releases/download/v0.14.52/syncthing-linux-amd64-v0.14.52.tar.gz
tar xvfz syncthing-linux-amd64-v0.14.52.tar.gz
nohup syncthing-linux-amd64-v0.14.52/syncthing &
Затем в браузере домашнего компьютера откройте http: // localhost: 8385 : это будет конфигурация синхронизации VPS!
Другое решение, которое я пробовал:
Дополнительные преимущества Syncthing, которые я только что заметил:
Вы можете уменьшить fsWatcherDelayS
значение config.xml
от 10
до 2
секунд, чтобы после выполнения сочетания клавиш CTRL + S через 2 секунды (+ время загрузки, т. е. менее 1 секунды для небольшого текстового файла) он находился на другом компьютере.
если вы синхронизируете два компьютера, которые находятся в одной локальной сети (просто передавая DeviceID друг другу, не нужно заботиться о локальных IP-адресах), он автоматически заметит, что ему не нужно проходить через Интернет, но это может иметь дело локально Это замечательно и обеспечивает очень быструю синхронизацию передачи данных (4 МБ / с!) Для phone <--> computer
обоих, подключенных к одному домашнему маршрутизатору через WiFi ... ... тогда как он будет зависать на скорости 100 КБ / с в ADSL с синхронизацией Dropbox ! (мой ADSL ограничен на 100 КБ / с при загрузке)
syncthing
.