Como o rsync apenas altera o que precisa ser alterado, não seria difícil simplesmente executar sua tarefa cron uma vez por hora. Se houver pouco ou nada para copiar, levará muito pouco tempo. Mas você não gostaria que o trabalho fosse interrompido, então você poderia criar um script de shell pequeno para verificar se o seu MacBook está pronto e, se estiver, então execute o comando rsync. Apenas no caso de haver um problema e o trabalho de rsync travar ou levar mais de uma hora, você deve certificar-se de não iniciar uma nova instância quando a anterior ainda estiver em execução. Aqui está um exemplo de script (que eu chamarei de MyRsyncJob e que você terá que revisar):
[ -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
Espero que ajude.