
Tengo una Mac que siempre está encendida y es mi computadora principal. También tengo una MacBook y estoy intentando sincronizar mi biblioteca de iPhoto. Entonces puedo usar rsync con éxito para sincronizar archivos. Estoy usando un cron para ejecutarlo una vez al día.
En realidad, la MacBook no siempre está encendida, así que estoy buscando una manera de ejecutar rsync cuando las dos computadoras estén conectadas a la misma red wifi. Así que supongo que el mejor lugar es ejecutar rsync de alguna manera cuando el aeropuerto esté conectado. ¿Cuál es la mejor manera?
Respuesta1
Dado que rsync solo cambia lo que necesita cambiar, no estaría de más ejecutar su trabajo cron una vez por hora. Si hay poco o nada que copiar, llevará muy poco tiempo. Pero no querrás que el trabajo se cuelgue al intentarlo, por lo que puedes crear un pequeño script de shell para verificar si tu MacBook está funcionando y, si lo está, hacer que ejecute el comando rsync. En caso de que haya un problema y el trabajo rsync se cuelgue o tarde más de una hora, querrás asegurarte de no iniciar una nueva instancia cuando la anterior aún se esté ejecutando. Aquí hay un script de muestra (al que llamaré MyRsyncJob y que tendrás 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 eso ayude.