직접 통신할 수 없는 시스템 간에 Unison 프로필을 동기화된 상태로 유지하는 가장 쉬운 방법은 무엇입니까?

직접 통신할 수 없는 시스템 간에 Unison 프로필을 동기화된 상태로 유지하는 가장 쉬운 방법은 무엇입니까?

나는 Unison을 사용하여 집 컴퓨터와 회사 컴퓨터 사이의 일부 파일을 동기화하고 있습니다. 그러나 두 컴퓨터는 SSH를 통해 직접 서로 연결할 수 없으므로 USB 썸 드라이브(권한을 유지하기 위해 ext4로 포맷)를 통해 동기화합니다.

내가 가진 문제는 Unison이 동기화 프로필 구성을 폴더 자체가 아닌 로컬(.unison 디렉터리)에 저장한다는 것입니다. 이는 무시된 파일과 같은 일부 정보가 내가 보관하는 두 프로필에 복제되어야 함을 의미합니다.

두 컴퓨터 간에 동기화 프로필을 자동으로 동기화하는 방법이 있습니까?

답변1

동기화할 디렉터리 내부에 프로필을 보관합니다. 내부에는 ~/.unison실제 프로필에 대한 심볼릭 링크를 넣었습니다. 이것은 나에게 효과적이었습니다. 또한 새 컴퓨터를 빠르게 '부트스트랩'할 수 있습니다. USB 드라이브에서 새 컴퓨터로 프로필을 복사하고 새로 시작하기만 하면 됩니다.

'알았어'가 ​​하나 있습니다. 추가하면무시하다USB 드라이브에 이미 존재하는 파일과 일치하는 프로필(한 컴퓨터의) 행을 추가하면 해당 파일은 다음 Unison 동기화 시 USB 드라이브에서 다른 컴퓨터로 전송됩니다.무시하다선. 그 이유는 프로필이 전송되도록 예약되어 있지만 전송될 때까지 (다른 컴퓨터에서는) 유효하지 않기 때문입니다.다음동기화. 그 외에는 아직 어떤 문제도 발생하지 않았습니다.

답변2

제가 선택한 대안은 2단계 동기화를 수행하는 것입니다. 내 Unison 프로필을 동기화하기 위한 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

그런 다음 스크립트를 사용하여 각 프로필을 차례로 실행합니다.

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

이 솔루션은 Unison을 한 번이 아닌 세 번 실행해야 하기 때문에 약간 번거롭지만 Unison 프로필 중 어느 것도 자체 동기화를 담당하지 않는다는 장점이 있습니다. 작업을 수행하기 위한 동일한 프로필)

관련 정보