Executando o rsync na conexão de rede

Executando o rsync na conexão de rede

Eu tenho um Mac que está sempre ligado e é meu computador principal. Também tenho um MacBook e estou tentando sincronizar minha biblioteca do iPhoto. Assim, posso usar o rsync com êxito para sincronizar arquivos. Estou usando um cron para executá-lo uma vez por dia.

Na realidade, o MacBook nem sempre está ligado, então estou procurando uma maneira de executar o rsync sempre que os dois computadores estiverem conectados na mesma rede wifi. Então, acho que o melhor lugar é executar o rsync de alguma forma quando o aeroporto estiver conectado. Qual é a melhor maneira?

Responder1

Como o rsync altera apenas o que precisa ser alterado, não faria mal nenhum simplesmente executar seu cron job uma vez por hora. Se houver pouco ou nada para copiar, levará muito pouco tempo. Mas você não gostaria que o trabalho parasse de tentar, então você poderia criar um pequeno script de shell para verificar se o seu MacBook está funcionando e, se estiver, execute o comando rsync. Caso haja um problema e o trabalho rsync trave ou demore mais de uma hora, certifique-se de não iniciar uma nova instância quando a anterior ainda estiver em execução. Aqui está um exemplo de script (que 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 isso ajude.

informação relacionada