Obtenha o rsync para trabalhar incrementalmente

1

temos dois servidores syslog e o processo rsync entre eles. O processo de rsync é executado a cada 15 minutos. Nós rotacionamos os logs diariamente, mas no final do dia, ainda há dúzias de GB de logs - o que significa que os HDD I / O estão ficando muito pesados. (Eu acho que porque o rsync está sempre sincronizando arquivos inteiros)

Não é que existam muitos arquivos de log, apenas que os arquivos de log ficam bem grandes.

Existe uma maneira de sincronizar incrementalmente? Como 'já existem as primeiras 100 mil linhas de logs, eu quero enviar apenas o último 2000'?

Ou você poderia sugerir outras melhorias dessa configuração? Atualmente, usamos o comando 'rsync -avrH'.

Obrigado pelas suas sugestões!

    
por user3337015 01.04.2016 / 08:52

1 resposta

1

Parece que o sistema está funcionando como projetado. O protocolo rsync envia apenas alterações aos arquivos existentes para o arquivo remoto. Isso é feito determinando se os registros de data e hora do arquivo local e remoto são diferentes. Se estão, então, lê as somas de verificação de computação de arquivos locais para blocos (assim como o controle remoto) e os blocos alterados são enviados para o controle remoto.

Isso sempre requer uma verificação completa do arquivo, pois não acredito que você possa excluir seções dele.

Se a E / S for realmente um problema para você, eu consideraria a possibilidade de fazer o log-log dos logs com mais frequência. Isso significará que, uma vez girado e fechado, o arquivo só será considerado para o rsync uma vez. O arquivo de log Ativo também será muito menor, portanto haverá menos I / O necessário para descobrir onde estão as alterações.

    
por 01.04.2016 / 09:15

Tags