Mam:
serwer Linux, który łączę przez SSH na porcie IP 203.0.113.0 1234
komputer domowy (za routerem), publiczny adres IP 198.51.100.17, którym jest Debian lub Windows + Cygwin
Jak najłatwiej jest /home/inprogress/
zsynchronizować folder (w obu kierunkach), trochę podobnie rsync
, ale z obserwatorem systemu plików , aby za każdym razem, gdy plik był modyfikowany, był natychmiast replikowany po drugiej stronie? (tzn. nie trzeba ręcznie wywoływać programu synchronizacji)
Szukam rozwiązania wiersza polecenia / bez GUI, ponieważ serwer jest bez głowy.
Czy istnieje wbudowane rozwiązanie dla systemu Linux / Debian?
syncthing
.lsync
, ale nie wiem, czy to przydaje się do synchronizacji dwukierunkowej.Odpowiedzi:
Po komentarzu @ Kusalanandy w końcu spędziłem kilka godzin testując Syncthing dla tego przypadku użycia i działa świetnie. Automatycznie wykrywa zmiany po obu stronach, a replikacja jest bardzo szybka.
Przykład: wyobraź sobie, że pracujesz lokalnie
server.py
w swoim ulubionym oprogramowaniu Notatnik, naciskasz CTRL + S (Zapisz). Kilka sekund później jest automatycznie replikowany na odległym serwerze (bez wyskakującego okna dialogowego).Jedną wielką rzeczą, którą zauważyłem, jest to, że nie musisz myśleć o adresie IP komputera domowego i serwera z Syncthing: każde „urządzenie” (komputer, serwer, telefon itp.) Ma unikalny identyfikator DeviceID i jeśli udostępniasz identyfikator z innym urządzeniem, automatycznie dowie się, jak powinny się ze sobą połączyć.
Do zrobienia:
Strona komputera domowego (Windows lub Linux):
Użyj zwykłego narzędzia konfiguracyjnego do synchronizacji w przeglądarce
Strona VPS:
Najpierw połącz VPS z przekierowaniem portów:
Ta ostatnia opcja przekieruje narzędzie konfiguracji sieci VPS Syncthing nasłuchujące na porcie 8384 do portu 8385 komputera domowego.
Następnie uruchom to na VPS:
Następnie w przeglądarce komputera domowego otwórz http: // localhost: 8385 : będzie to konfiguracja synchronizacji VPS!
Inne rozwiązanie, które próbowałem:
SSHFS przy użyciu tego samouczka . Pamiętaj, że w tym samouczku nie używają sshfs-win, ale win-sshfs (są to dwa różne projekty). Próbowałem obu i nie udało mi się uruchomić żadnego z nich (prawdopodobnie problem z moją konfiguracją VPS).
Oto również interesujące odniesienie: /softwarerecs/13875/windows-sshfs-sftp-mounting-clients
Dodatkowe zalety Syncthing, które właśnie zauważyłem:
można zmniejszyć
fsWatcherDelayS
wconfig.xml
od10
do2
sekund tak, że po zrobieniu CTRL + S, 2 sekundy później (+ chwili przesłać, czyli mniej niż 1 sekundę do małego pliku tekstowego) to na innym komputerzejeśli zsynchronizujesz dwa komputery, które są w tej samej sieci lokalnej (po prostu przekazując sobie DeviceID, nie musisz przejmować się lokalnymi adresami IP), automatycznie zauważy, że nie musi przesyłać przez Internet, ale może radzić sobie lokalnie. Jest to świetne i pozwala na bardzo szybką synchronizację transferu (4 MB / s!)
phone <--> computer
Obu podłączonych do tego samego routera domowego przez WiFi ... ... podczas gdy utknąłby przy 100 KB / s na ADSL z synchronizacją Dropbox. ! (mój ADSL jest ograniczony do 100 KB / s podczas przesyłania)źródło
Wygląda na to, że Unison powinien to zrobić.
Ma opcjonalny interfejs GUI, który może nieco ułatwić rozwiązywanie konfliktów, ale wszystko można również zrobić za pomocą tekstowego interfejsu użytkownika. Można również wstępnie zdefiniować sposób rozwiązywania konfliktów w przypadku operacji całkowicie nienadzorowanej.
Istnieje moduł obserwatora plików (fsmonitor), który w razie potrzeby wyzwala synchronizację. Wyszukaj „powtórz zegarek” w instrukcji, aby uzyskać szczegółowe informacje.
Wygląda na to, że Debian ma właściwą wersję (2.48+) spakowaną po wyjęciu z pudełka .
źródło