由于某种原因,gzip 不起作用。它给我一个空文件
/usr/bin/mysqldump --opt -u root -ppassword database > database.sql | gzip > database.sql.gz
database.sql 已正确创建,并且具有正确的大小。
但是database.sql.gz只有20kb并且包含一个空文件。
谢谢
答案1
您的语法在这里是错误的。由于您将 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
答案2
尝试这个
/usr/bin/mysqldump --opt -u root -ppassword database | gzip > database.sql.gz
答案3
管道意味着您没有写入文件,因此只需在单行代码中删除“ > database.sql”即可。
尝试这样做:
/usr/bin/mysqldump --opt -u root -p密码数据库 | gzip > database.sql.gz
答案4
问题是您试图将输出重定向到文件和管道。
如果要将命令的输出压缩到文件,则必须使用:
/usr/bin/mysqldump --opt -u root -ppassword database | gzip > database.sql.gz