질문글을 올려놓고 방법을 찾다가 동네에 M1 맥미니 중고 매물이 괜찮은 가격으로 나와서 바로 물었습니다. 맥 처음 써보는데 변종 리눅스다 생각하니 써볼만하네요.
아무튼 맥을 들인 덕에 단순히 동기화 폴더 지정해서 해결될 문제가 아님을 알고 인터넷을 뒤져서 원하는 거랑 비슷하게 할 수 있었습니다.
unison으로 로컬 폴더 두 개 동기화
1. Xcode 설치(앱스토어)
2. Homebrew 설치(https://brew.sh/index_ko)
3. Unison 설치(https://formulae.brew.sh/formula/unison)
brew install unison로 설치하면서 마지막에 설정 두 줄 복사해서 실행하라고 나오는 거 터미널에 입력하니 끝.
4. Unison 실행(https://mapoo.net/os/oslinux/unison을-이용한-로컬-백업/)
unison -batch -fastcheck true '폴더1' '폴더2'
5. crontab에 5분 마다 돌도록 등록
*/5 * * * * unison -batch -fastcheck true '폴더1' '폴더2'
이렇게 했으면 잘 됐어야 했는데...
unison 실행 했더니 실패
- 그냥 복사 붙여넣기 해서 몰랐는데 iCloud의 경로명에 띄어쓰기가 들어가더군요. ""로 묶어줬습니다.
터미널에서 unison으로 동기화 할 때는 성공인데 cron 도는 건 실행 실패
- cron이 사용자 환경설정을 읽어오는게 아닌지 unison을 못 찾아서 crontab에 /opt/homebrew/bin/unison으로 전체 경로 써서 성공
iCloud로 업로드를 못하고 계속 대기 중
- 처음에는 unison으로 동기화된 파일들의 소유자가 root라서 발생. 소유자를 유저 계정으로 바꿔줌.
- 두번째는 Finder로 열면 자동 생성되는 .DS_store의 소유자가 root라 발생. 이거 자동 생성 막는 옵션이라는 걸 찾아서 썼습니다.
이걸로 안 생기는 건 아니고, 대신 소유자가 유저 계정으로 생겨서 아이클라우드 동기화 실패를 일으키지는 않더군요.
글로 써보니 별거 없는거 같은데 이거 하느라 이틀 내내 맥을 붙들고 있었습니다.
그러고도 아직 완전히 생각한대로 작동하진 않지만 그럭저럭 원했던 건 이뤄졌습니다.
원래 질문글에 댓글로 남겨두려 했더니 길어져서 써봤어요.