Só quero compartilhar alguns trechos de código rsync que usei para fazer backup dos meus dados no Dropbox ou no Jungle Disk no meu Mac.
Tenho problemas para encontrar / pesquisar no Google os sinalizadores adequados para usar o rsync para Dropbox e Jungle Disk quando comecei com o rsync na Internet, espero que esta postagem do blog seja útil para alguém.
Como o Dropbox é essencialmente uma pasta no seu Mac, os sinalizadores de rsync são bastante diretos, no entanto, o mesmo não pode ser dito para o Jungle Disk, pois está usando WebDAV e armazenando o arquivo no Amazon S3 ou Rackspace Cloud Files, onde os tempos de modificação de arquivo não ser preciso.
- Estou usando o rsync 3.0.8. Você pode compilar o rsync 3.0.8 em seu Mac seguindo este tutorial . Você apenas tem que substituir 3.0.7 com 3.0.8 nos comandos.
- Para o Jungle Disk, estou usando o Rackspace Cloud Files em vez do Amazon S3 porque o Rackspace não cobra pela transferência de dados e, portanto, será mais barato.
- Estou fazendo um rsync do meu host remoto para o meu computador e todos os arquivos não encontrados no meu host remoto serão excluídos do meu computador.
/usr/local/bin/rsync -avz --delete --log-file='/path/to/Dropbox/logs/rsync/yourdomain.com.txt' --log-file-format='[%o] %f (%l bytes) (Last Modified: %M)' --exclude-from '/path/to/Dropbox/web/exclude_yourdomain.com.txt' -e ssh username@yourdomain.com:/home/username/public_html/ /path/to/Dropbox/web/yourdomain.com/
Descrição do sinalizador Rsync
-a aka –archive é uma abreviação para -r -l -p -t -g -o -D . Uma maneira rápida de dizer que você deseja recursão e deseja preservar quase tudo
- -r aka –recursive Diz ao rsync para copiar diretórios recursivamente
- -l aka –links Quando links simbólicos são encontrados, recriar o link simbólico no destino
- -p aka –perms Faz com que o rsync de recebimento defina as permissões de destino para serem iguais às permissões de origem
- -t aka –times Diz ao rsync para transferir os tempos de modificação junto com os arquivos e atualizá-los no sistema remoto
- -g aka –group Faz com que o rsync defina o grupo do arquivo de destino para ser o mesmo que o arquivo de origem
- -o aka –owner Faz com que o rsync defina o proprietário do arquivo de destino como o mesmo que o arquivo de origem
- -D aka –devices –specials Faz com que o rsync transfira caracteres e bloqueie arquivos de dispositivos para o sistema remoto para recriar esses dispositivos, bem como arquivos especiais, como sockets nomeados e fifos
-v aka –verbose Aumenta a quantidade de informações que você recebe durante a transferência
-z aka –compress Compacta os dados do arquivo conforme eles são enviados para a máquina de destino, o que reduz a quantidade de dados sendo transmitidos
–delete Diz ao rsync para excluir arquivos estranhos do lado de recebimento (aqueles que não estão no lado de envio), mas apenas para os diretórios que estão sendo sincronizados
–log-file Diz ao rsync para registrar o que está fazendo em um arquivo
–log-file-format Especifique exatamente qual registro por atualização é colocado no arquivo
–exclude-from Especifica um arquivo que contém padrões de exclusão (um por linha)
-e Especifica o shell remoto a ser usado
Termos do Layman
- Estou registrando a operação rsync no arquivo /path/to/Dropbox/logs/rsync/yourdomain.com.txt com o formato de log [% o]% f (% l bytes) (última modificação:% M) que se traduz em (por exemplo) 2011/07/14 08:00:00 [755] [recv] path / filename.txt (1024 bytes) (Última modificação: 2011/07 / 13-01: 00: 00) .
- Estou excluindo todos os arquivos e pastas contidos neste arquivo de texto /path/to/Dropbox/web/exclude_yourdomain.com.txt . Cada nome de arquivo ou pasta que você deseja excluir deve estar em uma nova linha nesse arquivo de texto.
- Estou fazendo login em seudominio.com com o nome de usuário nome de usuário via SSH. Você será solicitado a digitar sua senha.
- Assim que minhas credenciais forem verificadas, transferirei todos os arquivos e pastas em / home / username / public_html / do host remoto para /path/to/Dropbox/web/yourdomain.com/ em meu computador local.
Dê uma olhada na página do manual do Rsync para explicações mais detalhadas.
Estou pronto para discussões nos comentários =)