mysqldump 生成 0bytes 文件

mysqldump 生成 0bytes 文件

我在 crontab 中有一个 mysqldump 行,但是它不起作用,它只会生成 0 字节文件:

0 0 * * *  mysqldump -u 'USERNAME' -p'PASSWORD' database| gzip -c > /mysqldumb/backupfile.`date +\%a`.sql.gz >/dev/null 2>&1

答案1

这些重定向:

> /mysqldumb/backupfile.`date +\%a`.sql.gz >/dev/null

从左到右执行并>/dev/null获胜。该工具写入/dev/null

您想要的文件最终会变成空文件,因为这是它的>whatever工作原理:它会创建whatever文件(如果尚未创建)并截断为零大小。稍后会写入(或不写入)文件。在您的情况下,不会向 写入任何内容backupfile.*

如果要写入指定的文件,请>/dev/null从命令行删除。


标题是

mysqldump生成 0 字节文件

它并不是mysqldump创建空文件;gzip它也不会执行此操作。

Cron 运行一个 shell,该 shell 设置管道和重定向 mysqldumpgzip执行。shell 在此阶段创建并截断文件。

要了解其工作原理,请调用

nonexistent-command > new-file

您将得到nonexistent-command: not found或等效的错误,仍然new-file会被创建。

相关内容