rsync excluindo arquivos vazios

3

Recentemente, descobri que alguns arquivos em um volume foram misteriosamente truncados - ou, mais precisamente, substituídos por um arquivo de tamanho zero.

Felizmente, esses arquivos tinham hard-link de vários lugares, e apenas cerca de metade dos links foram realmente substituídos por um arquivo de tamanho zero com aparentemente os mesmos atributos.

No entanto, quando examinei meus backups, descobri que o problema ocorreu antes do meu backup anterior. Para o volume em questão, um backup de espelho simples deve ser suficiente, porque os arquivos não devem ser excluídos - é principalmente apenas o acréscimo. Mas como o arquivo não está sendo excluído, não posso simplesmente dizer rsync para não excluir.

Existe uma maneira de dizer ao rsync para não sincronizar um arquivo com comprimento zero localmente, mas com comprimento diferente de zero no lado remoto?

Eu poderia simplesmente escrever algum código para procurar por arquivos de tamanho zero e excluí-los, mas isso é uma etapa extra demorada (agora há duas verificações completas do sistema de arquivos) e poderia excluir arquivos que legitimamente deveriam ser rsynced (no caso de existirem arquivos com tamanho zero).

    
por Michael 01.04.2015 / 08:21

1 resposta

5

rsync tem uma opção --min-size :

 --min-size=SIZE         don't transfer any file smaller than SIZE

Isso deve ajudá-lo, a menos que você tenha arquivos que precisem ser transferidos se não houver nenhum arquivo com tamanho de zero bytes no lado do destino.

AFAIK não é possível dizer ao rsync que tome ações especiais com base no lado de origem e de destino.

    
por 01.04.2015 / 08:28

Tags