Posts Tagged “rsync”

Uma dica rápida. Frustrado por copiar arquivos grandes entre partições do disco sem poder ter uma ideia de quanto tempo falta para acabar? Seus problemas se acabaram! Basta substituir seu cp pelo rsync, com um único comando:

echo "alias cp='rsync -v --progress'" >> .bashrc

Para aplicar as alterações basta logar novamente ou recarregar o arquivo de configurações com source ~/.bashrc.

Tags:, ,

Comments Nenhum comentário »

Rsync é uma ferramenta de cópia de arquivos que eu sempre quis saber usar e, hoje, depois de tomar vergonha na cara ler o manual por cinco minutinhos aprendi como usá-la. :)
Para quem não conhece, rsync é um programa de *nix (GNU/Linux, BSD, MacOS, blablabla, sistemas de verdade) que basicamente copia arquivos de um lugar para outro (por exemplo, fazer backup dos seus arquivos automaticamente para um servidor remoto), mas ao contrário do scp, o rsync verifica quais arquivos já foram copiados e os pula, copiando só a parte que falta. Uma mão na roda. Porém, a sintaxe do rsync não é tão straight-forward (qual a melhor tradução pra essa expressão? óbvia ou intuitiva?) quanto a do scp:

scp arquivo usuario@maquina:pasta

Por exemplo, se eu quero copiar todos os arquivos da pasta culturadigital para o meu servidor, eu poderia fazê-lo com:

scp -r culturadigital nighto.net:~

O problema disso é que o scp muito marotamente copiava os arquivos todos de novo, o que obviamente não é a solução mais eficiente, e eu acabava copiando o arquivo que eu queria na mão. Só que hoje eram muitos arquivos, por isso resolvi ler o man e ser feliz.

Assim sendo, a solução:

rsync -Prvz --rsh=ssh arquivo usuario@maquina:pasta

Sendo basicamente -P para exibir o progresso de cada arquivo (tamanho subido, porcentagem, velocidade, tempo restante), -r para cópia recursiva (copiar subdiretórios), -v de verbose (para ver melhor o que está acontecendo, como eu estou aprendendo a usar o programa, gosto de entender o que ele faz) e o -z para transferir os dados compactados em gzip (ou seja, para ir mais rápido ;) ). Esse –rsh=ssh serve para dizer que é para conectar à máquina remota via ssh (ou seja, do mesmo jeito que o scp faz). Daí pra frente é igual ao scp. Note que com exceção do --rsh=ssh, nenhuma das outras flags é necessária.

Fica aí­ então a dica para todos (inclusive para mim quando eu precisar relembrar) ;)

Tags:, ,

Comments Nenhum comentário »