mysqldump um dump zipado

-2

Até agora eu criei e zipi o mysql lixeira desta maneira:

mysqldump -u root -p --all-databases > /var/www/html/db-$(date +\%F-\%T).sql
zip /var/www/html/db-$(date +\%F-\%T).zip /var/www/html/db-*.sql
rm /var/www/html/db-*.sql

Existe uma maneira de tê-lo zipado diretamente de mysqldump e salvar essas duas linhas extras?

    
por Arcticooling 12.01.2018 / 10:15

3 respostas

3

Tente isto:

mysqldump -u root -p --all-databases | zip /var/www/html/db-$(date +\%F-\%T).zip

Você só terá um arquivo no arquivo zip com - como nome do arquivo.

    
por Pierre François 12.01.2018 / 10:20
3

As outras duas respostas já declararam a seguinte solução (então considere isto uma extensão das outras duas respostas):

mysqldump -u root -p --all-databases | zip /var/www/html/db-$(date +\%F-\%T).zip -

Isso é bom, mas isso funciona apenas no stdin / stdout. Isso significa que o arquivo será armazenado como - dentro do arquivo, e somente normalmente será extraído corretamente para stdin. Isso significa extrair esses dados do ZIP, você terá que fazer isso:

unzip -p myZipFile.zip > myBackup.sql

Se você quiser criar um arquivo ZIP "normal" (onde as coisas têm um nome real), você terá que fazer algumas coisas realmente complicadas ou apenas faça o que você já está fazendo, então não há ganho líquido.

Como o próprio MySQL é stdin-aware, você pode restaurar diretamente de um backup usando o comando abaixo (como um exemplo):

unzip -p myDataBackup.zip | mysql -uroot -pMyInsecurePassword
    
por Kaz Wolfe 14.01.2018 / 22:09
2

Você pode tentar isso

mysqldump -u root -p --all-databases | zip /var/www/html/db-$(date +\%F-\%T).zip -
    
por Adel Kihal 12.01.2018 / 10:35