tar --exclude '* / logs' não funciona

1

Eu tento excluir todas as pastas chamadas 'logs' no meu prompt tar (não preciso fazer backup de todos os meus arquivos de log)

Simplifiquei meu prompt com esta aparência:

tar -cvpf backup.tar servers --exclude='*/logs'

e meu sistema de arquivos como este:

/home/
    backup.sh
    servers/
        server1/
            logs/
                logfile1
                logfile2
        server2/
            logs/
                logfile1
                logfile2
        [server3 ... server100]/

Se eu executar o script, ele não excluirá as pastas de log, ao passo que, se eu executar o seguinte, ele será executado:

tar -cvpf backup.tar servers --exclude=server1/logs --exclude=server2/logs (and so on for the rest of the servers)

Então, como posso alterar meu comando para não ter que copiar e colar o comando exclude para cada servidor e provavelmente produzir alguns erros?

    
por Nicola Uetz 16.06.2018 / 15:41

1 resposta

1

Com o GNU tar (v. 1.29), funciona para mim com tar cvf foo.tar --exclude "*/logs" servers .

Parece que a opção --exclude se aplica apenas aos caminhos listados depois dela na linha de comando, portanto, isso não excluiria a/logs :

tar cvf foo.tar servers/a --exclude "*/logs" servers/{b,c}

No entanto, não consigo ver isso mencionado explicitamente na página man (mas a sinopse lista as opções antes dos arquivos, como de costume).

    
por 16.06.2018 / 15:50

Tags