ZIP está preso com um arquivo de lixo

1

Eu normalmente gosto de pesquisar exaustivamente meus problemas antes de ter que perguntar à comunidade. Mas agora estou preso. Eu estou usando o seguinte comando:

zip -ur zipfile.zip /volume1  

Para fazer backup de todo o meu diretório volume1 em outro volume. Sim, eu sei que este não é o método perfeito para backups, mas é exatamente o que eu preciso, ou basicamente o que meu chefe precisa.

Quando executo este comando manualmente, ele está funcionando perfeitamente, mas quando o executo por meio de um script python, posso ver claramente na máquina de destino que o comando está em execução (verificado por top ), mas um arquivo de lixo com algum nome estranho é criado e, embora o comando ainda esteja em execução, mas nada acontece mais, nenhum arquivo zip foi criado, nada. Apenas o comando em execução e um arquivo de lixo criado inútil.
O objetivo é apenas copiar alguns arquivos de usuários, para um arquivo zip, não nos preocupamos com a estrutura de diretório ou qualquer coisa que só precisamos de arquivos específicos do usuário para fazer o backup do volume1 compartilhado para o nosso disco rígido de backup.

O que pode ter levado a isso?

    
por 8-bits 15.03.2017 / 08:49

1 resposta

4

Solução sugerida: Tente compactar cada diretório separadamente e, com certeza, não tente recursivamente zipar todos os arquivos em /

Resposta detalhada:

a página de manual do zip explica a opção que você usou, por exemplo -r significa:

-r
--recurse-paths
    Travel the directory structure recursively

Quando você está executando o seguinte comando:

zip -ur zipfile.zip / 

zip tenta compactar os arquivos inteiros no sistema (da raiz / e abaixo).

zip usa um arquivo temporário (no seu caso você o chamou de "arquivo lixo") que contém os dados coletados até agora. Depois que a operação zip concluída, o zip move esse arquivo temporário para o arquivo zip resultante.

No seu caso, você solicitou o zip para compactar todos os arquivos no seu sistema, o que inclui também o arquivo temporário criado pelo zip.

Isso pode causar loop infinito, já que o zip pode tentar adicionar o arquivo temporário a si mesmo.

Além disso, você pode tentar adicionar dispositivos na pasta /dev e em arquivos semelhantes, os quais não tenho certeza se gostaria de compactá-los.

    
por Yaron 15.03.2017 / 10:28