由于某种原因,gzip 不起作用。它给了我一个空文件
/usr/bin/mysqldump --opt -u root -ppassword database > database.sql | gzip > database.sql.gz
database.sql 已正确创建并且具有正确的大小。
但是 database.sql.gz 只有 20kb 并且它包含一个空文件。
谢谢
由于某种原因,gzip 不起作用。它给了我一个空文件
/usr/bin/mysqldump --opt -u root -ppassword database > database.sql | gzip > database.sql.gz
database.sql 已正确创建并且具有正确的大小。
但是 database.sql.gz 只有 20kb 并且它包含一个空文件。
谢谢
你的语法在这里是错误的。因为您将 mysqldump 命令的输出发送到 database.sql,所以没有输出可以通过管道传输到 gzip。只需删除该位,因此您只需创建 gzip 压缩文件:
/usr/bin/mysqldump --opt -u root -ppassword database | gzip > database.sql.gz
如果您真的想创建压缩和未压缩版本,则需要运行两个单独的命令:
/usr/bin/mysqldump --opt -u root -ppassword database > database.sql ; cat database.sql | gzip > database.sql.gz
或使用 tee 拆分输出:
/usr/bin/mysqldump --opt -u root -ppassword database | tee database.sql | gzip > database.sql.gz
尝试这个
管道意味着您没有写入文件,因此只需删除单行中的“> database.sql”。
尝试这样的事情:
/usr/bin/mysqldump --opt -u root -ppassword 数据库 | gzip > 数据库.sql.gz
因为在创建 sql 文件 database.sql 之后没有更多的输出。它不会继续,因此管道不会接收任何数据。你可以这样做:
mysqldump -u root -p auth > data.sql && gzip data.sql
问题是您试图将输出重定向到文件和管道。
如果要将命令的输出压缩到必须使用的文件中: