출처 : http://projectresearch.co.kr/2008/01/11/
회사와 집에서의 작업 디렉토리/문서를 양방향 Sync 시키는 방법에 대해서 공유하고자 한다.
원격지의 Mac간의 양방향 Sync를 하기위한 방법으로 다양한 방법들이 존재하며, 각각의 장단점있다.
* Transmit을 통한 FTP Sync
- 장점 : 가장 직관적이며 쉽다.
- 단점 : 속도가 오래 걸리며, 파일의 생성 날짜가 FTP 전송일이 되어버려 작업 History관리가 불가능하다.
날짜에 의한 Sync가 되지 못한다.
- 결론 : 비추
* Rsync
- 장점 : 빠르고 간면하다. 무료다. One-way sync로 백업시에만 유용하다.
- 단점 : 사무실과 집에서 동시에 작업할때 과거 데이터가 새로운 데이터를 덮어 쓸 수 있어 양방향 Sync로 적절하지 못하다.
- 결론 : 백업이나 n대의 서버로 배포(백업)시 유리
* Subversion
- 장점 : 문서,파일에 대한 형상 관리가 가능하다.
- 단점 : 형상관리가 필요하지 않은 문서/파일 관리로, 저장공간이 적게는 두배이상 필요하다.
- 결론 : 여러명의 협업 혹은 단일 프로젝트의 작업 기록이 남겨야 하는 프로젝트성 자료 공간으로 활용
* Unison
- 장점 : Bi-way sync로 양방향 Sync가 가능하다. 무료다. Cross-platform으로 Mac, Linux, Unix, Windows간의 양방향 Sync가 가능하다.
원격지가 아닌 LAN상의 컴퓨터 혹은 동일 컴퓨터의 Volumes내에서 양방향 Sync가 가능하다.
- 단점 : 단 Windows 상에서는 파일명에 한글이 있을시 깨진다. (Unix/Mac/Linux간에는 문제 없음)
- 결론 : 개인 혹은 업무적으로 항상 데이터를 양방향 Sync시킬 필요가 있을 경우 유리
최초 1G 정도 자료의 회사와 집의 Mac끼리의 최초 Sync시간이 5분 이내였던 것 같고, 이후에는 변경 파일만 비교해서 복사하니 몇 초~몇분 이내에 다 Sync되었다.
참고
#01. Unison Manual
#02. Complete Bi-Directional Home Sync and Backup with Unison
#03. Unison File Synchronizer: Liberation through Data Replication
#04. Using Unison for remote backups
#05. File Synchronization with Unison
#06. Passwordless SSH using public/private keys
#07. 파일동기화
방법은 아래와 같다.
1. 두대의 Mac에 Unison 설치
2. 두대의 Mac 각각으로 SSH로그인시 패스워드없이 자동으로 입력하게끔 환경 설정
3. 명령어 수행
4. 고급환경 설정 (Shell script작성 및 Crontab에 등록하여 주기적으로 실행되게끔.)
1. Unison 설치
두가기 방법이 있는데 Source를 직접 Compile하는 방법이 있고, 미리 Compile한 Binary를 받아서 설치하는 방법이 있다.
1) 직접 compile방법
- Complete Bi-Directional Home Sync and Backup with Unison 을 참고하여 컴파일한 후 설치한다.
2) Compile된 unison binary를 다운로드 받아 설치하는 방법
- http://www.cs.haifa.ac.il/~shuly/unison/ 에서 unison 2.27.47
text version, compiled for PowerPC Apple OS/X을 다운로드 받아 압축을 풀고 아래와 같이 압축을 풀고 설치한다.
———————————————————-
su
mv unison-2.27.47.osx.text /bin/unison
chmod 777 /bin/unison
———————————————————-
추가로 필자가 쓰고 있는 버전은 예전에 googling으로 찾았는데 어디서 찾았는지 재검색이 안된다. 필자가 가지고 있는 Binary파일을 Link로 걸어둔다. (Unison 2.26.13: Mac(10.4, 10.5), Linux, Windows)
2. 두대의 Mac 각각으로 SSH로그인시 패스워드없이 자동으로 입력하게끔 환경 설정
1) 로컬 컴퓨터에서 Key를 생성한다.
$ mkdir -p ~/.ssh
$ chmod 700 ~/.ssh
$ cd ~/.ssh
$ ssh-keygen -t dsa
2) 생성된 키를 원격지 컴퓨터로 복사한다.
$ scp -p id_dsa.pub remoteuser@remotehost:
Password: ********
3) 원격지 컴퓨터로 로그인하여 Public key를 인식/추가해 준다.
$ ssh remoteuser@remotehost
Password: ********
remotehost$ mkdir -p ~/.ssh
remotehost$ chmod 700 ~/.ssh
remotehost$ cat id_dsa.pub >> ~/.ssh/authorized_keys
remotehost$ chmod 600 ~/.ssh/authorized_keys
remotehost$ logout
4) 원격지 컴퓨터로 재 로그인 한다. (패스워드를 물어보지 않고 자동 로그인됨)
$ ssh remoteuser@remotehost
3. 명령어 수행
$ unison ~/Documents ssh://remoteuser@remotehost/Documents -times
내 Documents 하위 디렉토리 전체를 @remotehost 컴퓨터의 remoteuser의 Documents에 시간 정보를 그대로 유지하고 복사
$ unison ~/Documents ssh://remoteuser@remotehost//Volumes/외장하드명/Documents -times
내 Documents 하위 디렉토리 전체를 @remotehost 컴퓨터의 외장하드의 Documents폴더에 시간 정보를 그대로 유지하고 복사
4. 고급환경 설정
여러개의 Folder를 양방향 Sync시킬 경우 상기 명령어를 포함한 Shell 파일을 하나 만들고 퇴근 무렵 Crontab에 주기적으로 실행되게끔 설정하면 완료 됨.
$vi ~/script/bi-sync-backup.sh
——————————————————————————-
unison ~/Documents ssh://remoteuser@remotehost/Documents -times -batch > /dev/null 2>&1
——————————————————————————-
$chmod 755 ~/script/bi-sync-backup.sh
$crontab -e
——————————————————————————-
50 17 * * * /Users/(계정명)/script/bi-sync-backup.sh > /dev/null 2>&1
——————————————————————————-
이렇게 하면 매일 오후 5:50분에 사무실의 컴퓨터를 Remote 컴퓨터의 ~/Document 폴더를 양방향 Sync해준다.
WRITTEN BY
- RootFriend
개인적으로... 나쁜 기억력에 도움되라고 만들게되었습니다.