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.

Tags: , , ,