Rsync, caso de uso simples


A ideia de escrever esse post surgiu a partir da necessidade recente de sincronizar storages com muitos arquivos que são atualizados com uma frequência alta. Ou seja eu faço um primeiro rsync e até que realmente consiga realizar meu objetivo, ainda executo o comando uma segunda ou terceira vez para certificar que todos os dados foram copiados.

Meu cenário são dois servidores linux rodando CentOS 5.7 x86-64, mas já deixo claro que o comando e os parâmetros que vou apresentar adiante podem ser usados em qualquer outra distribuição.

rsync -r -p --progress --ignore-existing --delete /path/origem root@ip_destino:/path/destino

Explicando o comando acima, o parâmetro -r é para copiar material recursivo dentro das subpastas. --progress, exibe o progresso da copia, individual por arquivo. -p preserva as permissões da pasta de origem.

--delete, atenção neste parâmetro, ele deleta o arquivo do destino igualando completamente com a origem. Por ex: Temos pasta 1, pasta 2 e pasta 3. Caso eu já tenha feito um primeiro rsync e venha por algum motivo apagar a pasta 2 da origem, quando eu rodar novamente o comando a pasta 2 será deletada do destino.

--ignore-existing, faz a copia de arquivos baseado em seu tamanho, ignora a data de modificação. Isso é bom até certo ponto. Caso você consiga escrever dados na origem que não aumentaram o tamanho do arquivo, um segundo ou terceiro rsync não vai fazer update do arquivo no destino.

O manual padrão do linux é muito completo, man rsync já permite compreender muito sobre a ferramenta. Que alias possui muito mais opções do que as listadas por mim neste post. Caso não tenha um terminal proximo, acesse: http://www.samba.org/ftp/rsync/rsync.html e leia sobre.

Postagens mais visitadas deste blog

MySQL Cluster

Python + Fluentd

Email Temporario