我有一个运行mysqldump的bash脚本mysql_cron.sh
#!/bin/bash
/usr/local/mysql/bin/mysqldump -ujoe -ppassword > /tmp/somefile这可以很好地工作。然后我从cron调用它:
20 * * * * /home/joe/mysql_cron.sh这将创建文件/tmp/somefile,但该文件始终为空。我已经尝试添加一个
source /home/joe/.bash_profile 以确保cron具有正确的环境变量,但这并没有帮助。我看到许多其他人也有这个问题,但没有找到解决方案。我还尝试了crontab中的'>‘操作符来将任何cron错误分类到文件中,但似乎没有生成任何错误。欢迎任何疑难解答的想法。谢谢!
发布于 2011-02-15 02:39:58
将错误信息的输出添加到文件中(就像Damp所说的),这样您就可以检查是否有错误:
#!/bin/bash
/usr/local/mysql/bin/mysqldump -ujoe -ppassword > /tmp/somefile 2>&1您也可以在/var/log上查看MySQL的日志文件,以防有什么提示。
发布于 2011-02-15 02:23:24
将这一行添加到您的脚本中,并比较从cron运行它与直接运行它的结果:
env > /tmp/env.$$.out结果文件名中的$$将替换为父进程(cron或shell)的PID。您应该能够对这两个文件执行diff操作,并查看这两个环境之间是否有任何重要的区别。
https://stackoverflow.com/questions/4995689
复制相似问题