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 este arquivo é alterado e tem que ir 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 tar quero dizer GNU tar .

    
por bat_ventzi 13.01.2014 / 10:11

2 respostas

2

Eu fiz alguns testes com o GNU tar e descobri que:

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

  • Quando você está criando um arquivamento incremental usando um arquivo de instantâneo, como em tar cvvf test.tar --listed-incremental=snaphot test_folder , tanto mtime quanto ctime são usados para verificar as alterações. Isso é feito porque alterar algum atributo do arquivo (ou seja, o proprietário) altera a hora. 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 e se você conseguir falsificar o sistema de arquivos e alterar o conteúdo do arquivo, mas não alterar o tempo deles, e o ctime tar não incluirá esse arquivo no arquivo. o próximo incremento.

Para referência sobre atime, mtime e ctime, usei este link .

    
por 14.01.2014 / 08:26
2

Se você está se referindo ao GNU tar, então, conforme o manual, ele verifica o horário modificado em relação ao do arquivo. Então, isso seria mtime .

link

Para um arquivo que tenha sido modificado, ctime permaneceria o mesmo, portanto, não seria uma verificação válida. tar não faz verificações md5.

    
por 13.01.2014 / 10:35