Mysqldump在linux上通过cron运行时创建空文件

bet*_*oys 6 mysql bash mysqldump

我有一个运行mysqldump的bash脚本mysql_cron.sh

#!/bin/bash
/usr/local/mysql/bin/mysqldump -ujoe -ppassword > /tmp/somefile
Run Code Online (Sandbox Code Playgroud)

这很好用.然后我从cron调用它:

20 * * * * /home/joe/mysql_cron.sh
Run Code Online (Sandbox Code Playgroud)

这会创建文件/ tmp/somefile,但文件始终为空.我试过添加一个

source /home/joe/.bash_profile 
Run Code Online (Sandbox Code Playgroud)

脚本以确保cron具有正确的env变量,但这没有帮助.我看到很多其他人遇到这个问题,但没有找到解决办法.我还尝试在crontab中使用'>'运算符来捕获文件中的任何cron错误,但这似乎不会产生任何错误.欢迎任何疑难解答.谢谢!

dav*_*dag 6

将错误信息输出添加到文件中(如Damp所说),以便您可以检查是否有任何错误:

#!/bin/bash
/usr/local/mysql/bin/mysqldump -ujoe -ppassword > /tmp/somefile 2>&1
Run Code Online (Sandbox Code Playgroud)

您还可以查看MySQL的日志文件,/var/log以防有一些提示.