Utilizando Rsync
Nesta manhã tive que fazer a sincronia entre dois servidores.
Primeira coisa que me veio a cabeça foi fazer o bom e velho scp. Vamos com calma, que bicho é esse?
Para fazer copia de arquivos em máquinas UnixLike (linux, BSD, Mac, Solaris, etc). O comando é simples:
cp url_arquivo_origem/nome_arquivo_origem url_arquivo_destino/arquivo_destino.
Isso pode ser feito através da rede também utilizando o comando scp, definição da Wikipedia.
“Secure Copy ou SCP é um meio seguro para transferir arquivos entre um host local e um remoto ou entre dois hosts remotos, usando o protocolo SSH.
O termo SCP pode ao mesmo tempo referir-se ao Protocolo SCP ou ao Programa SCP.”
Bem isso era o que eu precisava para sincronizar meus servidores com um detalhe que era crucial, existem arquivo do tipo .pdf que são pesados e desnecessários para minha
sincronia.
Procurando um pouco na internet encontrei uma segunda forma que seria o RSYNC que faz quase a mesma coisa com a diferença de você passar o caminho e ele se
virar para verificar as diferenças.
Definição da Wikipedia:
rsync é um utilitário para sincronização de arquivos e diretórios entre duas localidades diferentes enquanto minimiza a transferência de dados.
Sua sinatxe:
rsync -Cravzp /home/valdinei/arquivos/ /var/backups/arquivos/
ou
rsync -Cravzp /home/valdinei/arquivos /var/backups/
Do primeiro modo será sincronizado dos os arquivos que se encontram dentro da pasta arquivos no meu home para a pasta arquivos que se encontra dentro de backups
Da segunda forma estarei sincronizando a pasta arquivo com a pasta backup, como assim? Caso exista a pasta arquivos dentro de backup ele vai buscar o conteudo que esta na pasta
arquivos na minha home e colocará as diferenças dentro da pasta arquivos na pasta backup.
E se caso a pasta arquivos não existir dentro da pasta backup será criada com todo o conteúdo.
Isso me faz exatamente o que o scp faz :). Agora vem que eu precisava o rsync permite que você exclua certo tipos de arquivos que contenham uma cadeia de caracteres
especifico.
Então para resolver meu problema fiz a sincronia desta forma:
rsync -avz /home/valdinei/arquivos /var/backups/ --exclude *.pdf*
E para fazer entre maquinas destintas na rede seria assim:
rsync -avz -e ssh valdinei@host1:/home/valdinei/arquivos /home/valdinei/arquivos --exclude *.pdf* --exclude *.PDF*
As opções são:
-a Enviar Todos os Arquivos -v Mostrar todas as mensagens -z Enviar de mod compactado. -e ssh Utilizando o tunelamento de ssh
Agora fazendo pela rede.
Acho que isso é tudo por hoje.
Dinei.