mysqldump 生成 0bytes 文件

sbh*_*600 0 linux mysql

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

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

Kam*_*ski 5

这些重定向:

> /mysqldumb/backupfile.`date +\%a`.sql.gz >/dev/null
Run Code Online (Sandbox Code Playgroud)

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

你所追求的文件最终是空的,因为这是如何>whatever工作的:它创建whatever文件(如果尚未创建)并截断为零大小。写入(或不写入)文件稍后发生。在您的情况下,没有任何内容写入backupfile.*.

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


标题是

mysqldump 制作 0 字节文件

这不是mysqldump创建空文件;gzip也不这样做。

的Cron运行壳,所述壳设置管道和重定向之前 mysqldumpgzip被执行。Shell 在此阶段创建并截断文件。

要查看它是如何工作的,请调用

nonexistent-command > new-file
Run Code Online (Sandbox Code Playgroud)

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