본문 바로가기

Engineering/Mac

Mac 에서 dropbox 로 파일 백업

728x90

로컬 Mac 에서 파일 작업을 하고나서 dropbox 로 옮기는 작업을 한다.(주로 회사에서 개인적인 작업하다가 클라우드로 백업을...) 

그냥 복사한번이면 끝나는 일이긴 하지만, 매번 하는 것도 귀찮고 잊을먹을때도 있고 해서 자동화를 고민해보았다.


link(ln) 를 이용

dropbox 를 설치하면 /Users/사용자/Dropbox 라고 생기는데, 여기다가 디렉토리를 미리 만들고 ln 명령어를 통해서 로컬 Mac 에다가 링크를 시킨다. 그럼, dropbox 에서 알아서 복사를 하겠지라고 생각하고 작업을 했다.

$ pwd

/Users/firstboos/Sites

$ ln -sf /Users/firstboos/Dropbox/MyDev/web/ web

이제 web 이라는 디렉토리에서 간단한 html 파일을 만들고, 웹 브라우저로 여니깐 "Permission Error" 가 난다. 원인을 찾아보니, web -> /Users/firstboos/.... 인데, /Users 디렉토리가 그룹 권한이 staff 이다. 아무래도 이건 아닌거 같다.


rsync 를 이용

원격 파일 복사 명령어로 많이 사용하는 rsync 를 이용하기로 했다. 정공법이 제일 나은것인가...

로컬에서 작업하고 dropbox 디렉토리로 복사하는 거지만, 사실은 로컬에서 로컬로 복사하는 것이다. 그래서 굳이 rsync 를 사용할 이유는 없지만, rsync 는 cp 명령어보다 풍부한 기능을 제공한다.

$ pwd

/Users/firstboos/Sites

$ ls

web/

rsync -czvh jsTest/ /Users/firstboos/Dropbox/MyDev/web/jsTest/

skipping directory jsTest/.


sent 21 bytes  received 20 bytes  82.00 bytes/sec

total size is 0  speedup is 0.00


-c : checksum

-z : compress

-v : verbose

-h : human-readable


간단한 스크립트로 사용했던 명령어를 저장했다. 추후에 다른 파일이나 디렉토리도 저장시키기 위해....


Cron 등록

복사가 잘되는거 같아서 cron job 으로 등록도 했다. 매시간 0분과 30분에 두번 실행되도록 설정했다. 다른 글들에서는 rsyncd 데몬을 사용하는데, 굳이 많이 데이타를 옮기는 것도 아니고 데몬 관리하는 것도 귀찮고 해서 cron 을 선택했다.

# crontab -e

0,30 * * * * /Users/firstboos/Sites/rsync_job.sh


그런데, 로컬 디렉토리(Sites/web) 에서 파일을 생성하고 일부러 기다려보았는데 새로 생성한 파일이 복사가 안되었다. 원인을 알고보니 rsync 옵션을 하나더 추가해야한다.

$ rsync -acvzh jsTest/ /Users/firstboos/Dropbox/MyDev/web/jsTest/

-a : archive mode. 심볼링 링크나 권한 관련 내용도 같이 복사한다라고 되어있었는데, 새로운 파일이나 변경사항들과 관계 있을줄 몰랐다.


도움받은 곳 :

http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Tip/Rsync