Usando o GNU tar
:
tar -cz -f /data/backup.tgz --exclude '*.log' --exclude 'mysql-bin.*' /data/mysqldata
O problema que você encontrou foi que xargs
execution tar
multiple (pelo menos duas) vezes. Na segunda vez em que tar
foi executado, o arquivo de backup "encolherá" (será sobrescrito).
Isso é o que o xargs
faz. Ele executa um utilitário com tantos argumentos quanto possível, e quando ele recebe mais argumentos (nomes de arquivos no seu caso), corta a lista e continua com a lista em outra chamada do utilitário.
O problema ocorreu porque você enviou todos os diretórios e nomes de arquivos para xargs
, gerando uma lista muito longa.