Tente isso
/usr/bin/mysqldump --opt -u root -ppassword database | gzip > database.sql.gz
Por algum motivo, o gzip não funciona. Isso me dá um arquivo vazio
/usr/bin/mysqldump --opt -u root -ppassword database > database.sql | gzip > database.sql.gz
database.sql é criado corretamente e tem o tamanho correto.
No entanto database.sql.gz tem apenas 20kb e contém um arquivo vazio.
obrigado
Tente isso
/usr/bin/mysqldump --opt -u root -ppassword database | gzip > database.sql.gz
Sua sintaxe está errada aqui. Como você está enviando a saída do comando mysqldump para database.sql, não há saída para ser canalizada para o gzip. Apenas remova esse bit, então você está apenas criando o arquivo gzipado: /usr/bin/mysqldump --opt -u root -ppassword database | gzip > database.sql.gz
Se você realmente deseja criar versões compactadas e descompactadas, será necessário executar dois comandos separados: /usr/bin/mysqldump --opt -u root -ppassword database > database.sql ; cat database.sql | gzip > database.sql.gz
ou use o tee para dividir a saída: /usr/bin/mysqldump --opt -u root -ppassword database | tee database.sql | gzip > database.sql.gz
pipeline significa que você NÃO está escrevendo para o arquivo, portanto apenas remova "> database.sql" em seu one-liner.
Tente algo assim:
/ usr / bin / mysqldump --opt -u root - banco de dados de senha | gzip > database.sql.gz
Porque não há mais saída após a criação do banco de dados sql database.sql. Ele não continua, portanto, o pipe não recebe nenhum dado. você poderia fazer isso: mysqldump -u root -p auth > data.sql && gzip data.sql
O problema é que você está tentando redirecionar a saída para um arquivo e para um pipe.
Se você quiser compactar a saída do comando em um arquivo, use:
/usr/bin/mysqldump --opt -u root -ppassword database | gzip > database.sql.gz
Tags package-management gzip pipe