Como sincronizar uma unidade de rede e uma unidade externa (Ubuntu e OS X)?

4

À luz de uma recente falha de hardware , eu decidi que é hora de ser um pouco menos frouxo em relação às cópias de segurança.

O que eu tenho:

  • Um servidor / NAS do Ubuntu 10.10 '
  • Um MacBook 5,2
  • Um HDD externo WD

O servidor e o MacBook estão permanentemente conectados pela Ethernet.

Eu tenho um diretório no servidor que gostaria de manter sincronizado com a unidade externa que eu conecto de tempos em tempos. O sistema de arquivos do Ubuntu é o ext4 e o drive externo é o HFS + (Mac OS Extended [Journaled]). Deve-se notar que isso não faz distinção entre maiúsculas e minúsculas. Não tenho certeza se isso é um problema. Se for, posso reformatar o disco rígido externo para que seja.

Deve-se notar também que o OS X 10.6 vem com um rsync , ver. 2.6.9. Acredito que há alguns problemas com relação ao manuseio de garfos de recursos e outras coisas.

Então, qual é a melhor maneira de proceder?

  • Eu deveria estar fazendo rsyncs em toda a rede? Se assim for, alguma orientação sobre: como conseguir isso usando o CLI seria apreciada (eu li a página rsync man inúmeras vezes e não consigo entender minha opinião).
  • Ou eu deveria estar instalando um módulo do kernel para que eu possa simplesmente conectar a unidade formatada com HFS + no servidor e ela seja lida & gravável no Linux? Novamente, algumas orientações de rsync de CLI seriam ótimas.
  • Ou eu deveria estar fazendo algo totalmente diferente?

Felicidades.

    
por boehj 15.04.2011 / 15:59

2 respostas

4

Sim, rsync é a resposta.

Ter a unidade conectada localmente será muito mais rápido que a rede, mas, para fazer backups, eu recomendaria deixar o hardware no lugar. Faça a coisa mais lenta e transfira-a pela rede ... remotamente para remoto, se necessário, para que você não quebre nada ao tocá-la.

Existem quatro partes principais no seu comando rsync. Primeiro, o mecanismo de transporte. Para transferências locais para locais, isso é ignorado. Se algum dos lados for remoto, você normalmente especificará um agente de transferência como rsync -e ssh para usar o transporte SSH. Depois disso, você especifica uma fonte para seus arquivos (termina com uma barra se estiver dando um diretório!) E então um alvo (novamente termina com diretórios de sincronização de barra!). Então, temos rsync -e ssh machine1:/source/folder/ machine2:/source/folder/ até agora. Em seguida, você pode adicionar opções como o que pular usando --exclude PATTERN , a compactação por fio usando -z , talvez a opção -a archive para lidar com coisas recursivas, permissões correspondentes e, por exemplo, -v ou --progress quer ver detalhes ou progresso à medida que avança.

Amostra:

rsync -avze ssh ubuntu:/path/to/source/files/ osxhost:/path/to/backup/drive/
    
por 15.04.2011 / 18:25
1

O comando básico que eu uso é rsync -vaP user@host1:/files/ user@host2:/files/ . Ocasionalmente, uso --exclude-from , --delete , --delete-excluded .

Um bom wrapper em torno do rsync para fins de backup é dirvish .

    
por 17.04.2011 / 08:25