Executando o rsync na conexão de rede

2

Eu tenho um Mac que está sempre ligado e é meu computador principal. Eu também tenho um MacBook e estou tentando sincronizar minha biblioteca do iPhoto. Então eu posso usar com sucesso o rsync para sincronizar arquivos. Estou usando um cron para que ele seja executado uma vez por dia.

Na realidade, o MacBook nem sempre está ativo, por isso estou procurando uma maneira de executar o rsync sempre que os dois computadores estiverem conectados na mesma rede wifi. Então eu estou supondo que o melhor lugar é de alguma forma executar o rsync quando o aeroporto está conectado. Qual é o melhor caminho?

    
por Alex 13.04.2010 / 21:25

1 resposta

2

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.

    
por 13.04.2010 / 23:15