Rsync - link-dest pasta de criação somente quando houver algo para atualizar

1

Primeiramente, não consigo entender o que o parâmetro --update faz. Eu pensei que sem ele, seria logicamente atualizar qualquer arquivo que muda e acredito que é o que faz, então por que o parâmetro --update existe mesmo?

Em segundo lugar, relacionado ao que eu perguntei porque eu pensei que resolveria o meu problema, mas não, eu tenho um monte de arquivos de configuração que eu gostaria de atualizar em uma pasta diferente toda vez que eles mudam por ter um cronjob que executa o comando abaixo a cada hora ou todos os dias, desta forma eu posso ter algumas versões anteriores no caso de algo dar errado. O problema é que esses arquivos raramente mudam, mas o rsync cria uma outra pasta com hard links independente da alteração ou não, o que é um pouco irritante, pois você tem um monte de pastas da mesma coisa, mesmo sendo um hard link e sem espaço , cria muita desordem.

Não há como impedir que o rsync --link-dest faça isso? Ou seja, crie a pasta apenas se alguma coisa mudar, caso contrário, não faça nada. Parece um cenário bastante básico, então eu teria pensado que há uma maneira fácil de fazer isso com um parâmetro, mas não consigo encontrar a resposta em nenhum lugar.

rsync -azP --delete --stats --update --log-file=/var/log/rsync/apacheconf date +% F_% T .log -e "ssh -i /home/user/.ssh/id_rsa" /etc/apache2/sites-available --link-dest=/mnt/backup/apache2/apache [email protected]:/mnt/backup/apache2/apache date +% F_% T .log

    
por Ulukai 07.01.2016 / 22:53

1 resposta

1

Em relação a --update , a página do manual do rsync é muito clara:

-u, --update: skip files that are newer on the receiver. This forces rsync to skip any files which exist on the destination and have a modified time that is newer than the source file. (If an existing destination file has a modification time equal to the source file's, it will be updated if the sizes are different.)

Sem essa opção, um arquivo antigo no src pode sobrescrever um arquivo mais novo no dst. Usando essa opção, você tem certeza de que os arquivos mais novos nunca serão sobrescritos pela versão anterior.

Para seu segundo problema, simplesmente evite usar --link-desk . O ponto inteiro desta opção é ter uma completa árvore de diretórios / arquivos sem ter que pagar o espaço de uma cópia completa e verdadeira. Se você não quer uma árvore completa a cada vez, mas você só quer ver os arquivos / pastas alterados, evite usar --link-desk

Além disso, para maior eficiência no processo de transferência de arquivos, você pode usar --compare-dest :

--compare-dest=DIR This option instructs rsync to use DIR on the destination machine as an additional hierarchy to compare destination files against doing transfers (if the files are missing in the destination directory). If a file is found in DIR that is identical to the sender's file, the file will NOT be transferred to the destination directory. This is useful for creating a sparse backup of just files that have changed from an earlier backup.

    
por 07.01.2016 / 23:48