A maneira ideal de fazer backup zip

1

Estou tentando compactar arquivos csv de uma pasta semanalmente. Com base na resposta dada a minha pergunta anterior, eu tenho esse código de trabalho.

sudo find . -mtime +7 | sudo zip -m archive-$(date +%Y-W-%U).zip -@

Eu gostaria de ajustar isso um pouco mais para que:

  • Arquivos com determinadas cadeias de caracteres são excluídos.
  • A saída do
  • zip é salva em um local diferente

Eu achei que consegui a primeira parte com o comando abaixo, mas ela continua congelando.

sudo find . -mtime +7 | sudo zip -m -x /*excludestring1* /*excludestring2* archive-$(date +%Y-W-%U).zip -@

Não consigo descobrir uma maneira de salvá-lo em um local diferente. Eu poderia incluir "* .zip" como uma exclusão, mas eu preferiria salvá-lo em um local diferente. Alguém poderia me ajudar a descobrir o que estou fazendo de errado?

    
por Sunil J 14.07.2015 / 15:36

2 respostas

1

  1. Para excluir alguns padrões, use a opção -x no final e use aspas simples ao redor dos padrões para que os padrões sejam expandidos por zip não por shell:

    sudo find . -mtime +7 | sudo zip -m  archive-$(date +%Y-W-%U).zip -@ -x '/*excludestring1*' '/*excludestring2*'
    
  2. Para salvar o arquivo zip em um local diferente, use o caminho absoluto (ou caminho relativo) para o local em que você deseja salvar o arquivo zip :

    sudo find . -mtime +7 | sudo zip -m -x /*excludestring1* /*excludestring2* /where/to/save/archive-$(date +%Y-W-%U).zip -@
    

    Substitua /where/to/save pelo caminho real em que você deseja salvar o arquivo zip.

    Por exemplo, para salvá-lo no diretório /tmp/spam/ :

    sudo find . -mtime +7 | sudo zip -m -x /*excludestring1* /*excludestring2* /tmp/spam/archive-$(date +%Y-W-%U).zip -@
    
por heemayl 14.07.2015 / 15:56
0

A página man afirma que \ deve ser usado para evitar a substituição de nomes de shell e deixar zip expande os curingas em si.

Como alternativa, você pode usar a opção -x para especificar um arquivo listando quaisquer exclusões no formato [email protected]

Com uma abordagem ligeiramente diferente, o comando find tem as opções -not e -path , que podem ser usadas para um efeito semelhante.

    
por Arronical 14.07.2015 / 15:54