Jaki jest najłatwiejszy sposób na synchronizację profilu Unison między komputerami, które nie mogą komunikować się bezpośrednio

2

Korzystam z Unison do synchronizacji niektórych plików między komputerem domowym a komputerem służbowym. Jednak dwa komputery nie mogą połączyć się bezpośrednio przez ssh, więc synchronizuję za pomocą napędu USB (sformatowanego przy pomocy ext4, aby zachować uprawnienia).

Problemem jest to, że Unison przechowuje konfigurację profilu synchronizacji lokalnie (w katalogu .unison) zamiast w samym folderze. Oznacza to, że niektóre informacje, takie jak zignorowane pliki, muszą zostać zduplikowane w dwóch profilach, które przechowuję.

Czy istnieje sposób, aby profil synchronizacji był automatycznie synchronizowany między dwoma komputerami?

hugomg
źródło

Odpowiedzi:

1

Trzymam profil w katalogu do synchronizacji. Wewnątrz ~/.unisonumieszczam dowiązanie symboliczne do prawdziwego profilu. To zadziałało dla mnie dobrze. Pozwala mi również szybko „załadować” nową maszynę: po prostu skopiuj profil z napędu USB na nowy komputer i zacznij od nowa.

Jest jedna „gotcha”. Jeśli dodasz do profilu linię ignorowania (na jednym komputerze), która odpowiada plikowi, który już istnieje na dysku USB, plik ten zostanie przeniesiony z dysku USB na inny komputer podczas następnej synchronizacji Unison, pomimo ignorować linia. Powodem jest to, że profil ma zostać przesłany, ale nie jest skuteczny (na innym komputerze) do następnej synchronizacji. Poza tym nie napotkałem jeszcze żadnych problemów.

Edward
źródło
Działa idealnie :) Nigdy nie przyszło mi do głowy, że umieszczenie dowiązań symbolicznych w środku .unisonbędzie działać!
hugomg
1

Alternatywą, z którą skończyłem, jest synchronizacja dwuetapowa. Mam profil unison do synchronizacji moich profili unison

#.unison/sneakernet-init.prof

label = Unison profiles

root = /home/hugo/.unison
root = /media/hugo/MYDRIVE/Sync/Unison

path = sneakernet-common        # ignore rules, diff command, etc
path = sneakernet-dotfiles.prf  # profile for my dotfiles
path = sneakernet-hugobox.prf   # profile for my other stuff

Następnie używam skryptu, aby uruchamiać jednocześnie każdy profil

#syncronize-things.sh
unison-gtk sneakernet-init
unison-gtk sneakernet-dotfiles
unison-gtk sneakernet-hugobox
sync # Flush file system caches

To rozwiązanie jest nieco kłopotliwe, ponieważ muszę uruchomić Unisona 3 razy zamiast jednego, ale ma tę zaletę, że żaden z profili Unisona nie jest odpowiedzialny za synchronizację samych siebie (co prowadzi do dziwnego zachowania, w którym może być konieczne dwukrotne uruchomienie Unisona z ten sam profil, aby wszystko działało)

hugomg
źródło