
나는 항상 켜져 있고 나의 주 컴퓨터인 Mac 한 대를 가지고 있습니다. 나도 MacBook을 가지고 있고 iPhoto 보관함을 동기화하려고 합니다. 따라서 rsync를 사용하여 파일을 동기화할 수 있습니다. 하루에 한 번씩 실행되도록 cron을 사용하고 있습니다.
실제로 MacBook이 항상 켜져 있는 것은 아니기 때문에 두 컴퓨터가 동일한 Wi-Fi 네트워크에 연결될 때마다 rsync를 실행할 수 있는 방법을 찾고 있습니다. 그래서 가장 좋은 곳은 공항이 연결되었을 때 어떻게든 rsync를 실행하는 것이라고 생각합니다. 가장 좋은 방법은 무엇입니까?
답변1
rsync는 변경이 필요한 부분만 변경하므로 cron 작업을 한 시간에 한 번만 실행해도 문제가 되지 않습니다. 복사할 내용이 거의 또는 전혀 없으면 시간이 거의 걸리지 않습니다. 하지만 작업이 중단되는 것을 원하지 않을 것이므로 작은 쉘 스크립트를 생성하여 MacBook이 작동 중인지 확인하고 작동 중이라면 rsync 명령을 실행하도록 할 수 있습니다. 문제가 있어 rsync 작업이 중단되거나 1시간 이상 걸리는 경우를 대비하여 이전 인스턴스가 아직 실행 중일 때 새 인스턴스를 시작하지 않는 것이 좋습니다. 다음은 샘플 스크립트입니다(MyRsyncJob이라고 부르며 수정해야 함).
[ -s /var/run/MyRsyncJob ] && {
PID=$(cat /var/run/MyRsyncJob)
echo "MyRsyncJob is still running (PID $PID)" >&2
exit 1
}
ping -c 1 -o MacBook >&- || exit 1 # Exit if MacBook isn't reachable
trap 'rm /var/run/MyRsyncJob' 0 15 # Remove run file upon exit or TERM signal
echo $$ >> /var/run/MyRsyncJob # Put PID into run file
rsync -zave ssh /path/to/my/iphoto/library/ MacBook:/path/to/destination/directory
도움이 되었기를 바랍니다.