[팁] 클라우드 스토리지(Google Drive, Dropbox) 자동으로 동기화하도록 스크립트& crontab 사용 시 에러 해결 방법
페이지 정보
본문
ObsidianVault라는 폴더의 내용을 양 스토리지간에 동기화를 시키려고 했습니다.
shell script로 하면 잘 되는데 막상 cron에 아래처럼 등록을 해보면
crontab -l
* * * * * /bin/bash -c 'rsync -av --delete "/Users/abc/Google Drive/My Drive/ObsidianVault/" "/Users/abc/Dropbox/ObsidianVault/" >> /Users/abc/synclog/cron_rsync_log.txt 2>&1'
로 등록을 하고 로그를 보면
~/synclog tail -f cron_rsync_log.txt ✔ base
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/c7c74b64-74b4-11ef-aeda-9635a580fe0d/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(891) [generator=2.6.9]
rsync: warning: /Users/abc/Google Drive/My Drive/ObsidianVault/.: unreadable directory: Operation not permitted
Transfer starting: 1 files
rsync: opendir "/Users/abc/Dropbox/ObsidianVault/." failed: Operation not permitted (1)
rsync: failed to set times on "/Users/abc/Dropbox/ObsidianVault/.": Operation not permitted (1)
이런식으로 에러가 납니다.
인터넷 검색하는데로 terminal, iterm에 full disk access줘도 해결 안되고, 결론은
와 같이 cron에다가 full access를 줘야 했네요.
https://medium.com/vunamhung/granting-full-disk-access-to-cron-29d2267fbe62
보시면 cron에 주는 방법이 나옵니다.
Beyouman님의 댓글