quinta-feira, 3 de janeiro de 2008

Copiar ficheiros através da rede

Para se ter a certeza de que um ficheiro copiado pela rede chega ao destino (seja ele remoto ou local) em bom estado (i.e., sem erros), pode-se usar o comando rsync.

Os argumentos -cPrvt dão jeito, sendo que se a rede for lenta (como no caso de uma rede wireless) ou no caso de se quererem transferir grandes quantidades de informação (de vários GB) se deve usar sem o argumento -c.
$ man rsync tem (muita!) informação útil.

e.g.:
$ rsync -cPrvt /media/RemoteDir/ /destination/
^ Atenção à barra final da localização de origem: se for indicada, apenas os conteúdos serão copiados. Se for omitida, a directoria será copiada para dentro da de destino.

EDIT:
Para melhores resultados poder-se-á utilizar o daemon rsyncd na máquina de origem. Para um começo rápido:

  1. # cp /usr/share/doc/rsync/examples/rsyncd.conf /etc/rsyncd.conf

  2. Editar o ficheiro /etc/rsyncd.conf. Não esquecer de tirar a opção checksums das opções recusadas, no fim do ficheiro

  3. Caso necessário, definir permissões no formato módulo:password em /etc/rsyncd.secrets

  4. Em /etc/default/rsyncd passar a variável RSYNC_ENABLE=false a true.

  5. Iniciar daemon do rsync: invoke-rc.d rsync restart


Para começar a sacar a todo o gás: rsync -cPhrvzt "rsync://Host/módulo/directoria/de/origem" ./

Referências:
A very basic rsync HOWTO (TransAMrit.net)
Rsync Over ssh Configuration in debian

Sem comentários: