Eu encontrei a pergunta Como determinar se os dados são um arquivo tar válido sem um arquivo? , mas eu queria saber: existe uma solução de linha de comando pronta?
gzip
validation
tar
gunzip
understack
fonte
fonte
-v
se você está apenas canalizando a saída/dev/null
?-z
opção também é desnecessária. Não faz nada no modo de extração ou lista.-z
Esse é definitivamente o caso do GNU tar - você sabe se isso é verdade em outro lugar (BSD, etc.)?tar.gz
? Alguma informação de suporte?você provavelmente poderia usar a opção gzip -t para testar a integridade dos arquivos
http://linux.about.com/od/commands/l/blcmdl1_gzip.htm
de: http://unix.ittoolbox.com/groups/technical-functional/shellscript-l/how-to-test-file-integrity-of-targz-1138880
Para testar se o arquivo gzip não está corrompido:
Para testar se o arquivo tar interno não está corrompido:
Como parte do backup, você provavelmente poderia apenas executar o último comando e verificar o valor de $? depois, para um valor 0 (sucesso). Se o tar ou o gzip apresentarem um problema, $? terá um valor diferente de zero.
fonte
bzip2 -t file.bz2
para arquivos bz2.tar -t > /dev/null
(nota:t
vs-t
)?Se você quiser fazer uma extração de teste real de um arquivo tar sem extrair para o disco, use a opção -O. Isso lança a extração para a saída padrão em vez do sistema de arquivos. Se o arquivo tar estiver corrompido, o processo será interrompido com um erro.
Exemplo de teste de tarball com falha ...
Exemplo de trabalho ...
fonte
> /dev/null
para o exemplo de trabalho também.Você também pode verificar o conteúdo do arquivo * .tag.gz usando
pigz
(gzip paralelo) para acelerar a verificação do arquivo:fonte
Tentei o seguinte comando e eles funcionam bem.
No entanto, podemos constatar que esses dois comandos são demorados. Talvez precisemos de uma maneira mais rápida de determinar a integridade dos arquivos compactados.
fonte
Uma boa opção é usar o
tar -tvvf <filePath>
que adiciona uma linha que informa o tipo de arquivo.Exemplo em um arquivo .tar válido:
Arquivo .tar corrompido:
fonte
Todas essas são soluções muito abaixo do ideal. Da especificação GZIP
Tem que ser codificado em qualquer linguagem que você esteja usando.
fonte
Às vezes sim, mas às vezes não. Vejamos um exemplo de arquivo corrompido:
Isto mostra:
Mesmo se você executar
tar disse que não houve erro:
mas o arquivo estava corrompido, agora tem "Fool" em vez de "Pete".
fonte