Canaliza vários arquivos em um tar gz

1

Gostaria de chamar o mysqldump para criar vários arquivos de backup e depois arquivá-los em um tar.gz.

Estou seguindo este tutorial sobre a parte do mysqldump: link (no final, ele chama mysqldump em um loop para cada banco de dados e cria um arquivo de cada vez)

Eu posso salvar todos os arquivos no diretório temporário e 'então' colocá-los no arquivo, no entanto, existe de qualquer maneira como pular essa parte desnecessária do diretório temporário? Eu tentei aprender sobre nomes canos, pensando que eles podem ser o que eu preciso, no entanto, realmente não os entendi.

    
por David162795 05.11.2014 / 10:30

1 resposta

4

Você pode usar o sinal -r para tar para anexar um arquivo a um arquivo existente. Como é legal anexar a um arquivo vazio ou inexistente, você pode modificar a instrução em loop para ser algo como

$MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --databases $db > "$BACKUP_DIR/mysql/$db"
tar rvf /path/to/tar.file "$BACKUP_DIR/mysql/$db" && rm "$BACKUP_DIR/mysql/$db"

O arquivo terá que existir temporariamente, já que ele precisa ter um nome de arquivo dentro do índice tar para propósitos de extração (se você enviou todos os arquivos para ele via pipe, pense em como eles podem extrair) - mas você não Não é necessário coletá-los todos juntos, depois juntá-los.

    
por 05.11.2014 / 10:42