Так как rsync меняет только то, что нужно изменить, не мешало бы запускать задание cron раз в час. Если копировать мало или ничего, это займет очень мало времени. Но вы не хотели бы, чтобы работа зависала при попытке, поэтому вы можете создать небольшой сценарий оболочки, чтобы проверить, работает ли ваш MacBook, и, если он есть, запустите команду rsync. На случай, если возникнет проблема, и задание rsync зависнет или займет более часа, вы должны убедиться, что не запускаете новый экземпляр, когда предыдущий еще работает. Вот пример сценария (который я назову 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
Надеюсь, это поможет.