Como o comando "tar" consegue "ver" arquivos alterados entre dois backups incrementais

2

Como o comando tar verifica se um arquivo foi alterado ou não? Como o tar "sabe" que esse arquivo foi alterado e precisa ser executado no próximo backup incremental?

Eu tenho algumas suposições:

  • pode comparar "mtime";
  • pode comparar "ctime";
  • pode comparar o conteúdo (usando algo como md5sum);

Quando digo alcatrão, quero dizer alcatrão GNU .

bat_ventzi
fonte

Respostas:

2

Fiz alguns testes com o GNU tar e descobri que:

  • Quando você está atualizando um arquivo, ou seja, tar uvvf test.tar test_folder apenas o mtime é usado para verificar se o arquivo foi alterado.

  • Quando você está criando um archive incremental usando um arquivo de captura instantânea, como no tar cvvf test.tar --listed-incremental=snaphot test_folder mtime e no ctime, são usados ​​para verificar alterações. Isso é feito porque a alteração de algum atributo do arquivo (ou seja, o proprietário) altera o ctime. O Tar é usado para fazer backup não apenas do conteúdo dos arquivos, mas também de seus atributos.

  • E, finalmente, o tar não soma os arquivos no arquivo morto e, se você conseguir falsificar o sistema de arquivos e alterar o conteúdo do arquivo, mas não alterar o tar mtime e ctime, não incluirá esse arquivo no próximo incremento.

Para referência sobre atime, mtime e ctime, usei este http://www.unix.com/tips-tutorials/20526-mtime-ctime-atime.html .

bat_ventzi
fonte