Posts Tagged “rsync”

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 »