如何解决linux定时执行数据库备份数据为空

问题是这样的,个人第一次遇到头疼了两天还是没有解决,求救!!
我写了一个脚本,

backup_mysql.sh,内容为:

mysqldump --defaults-extra-file=/etc/my.cnf a_store > /data/dbdata/mysqlbak/date +%Y%m%d.sql
backup_mysql.sh文件是执行备份生成文件的脚本,然后我把它放在/data/sh/目录下,

问题:然后我直接执行,是可以执行有结果的(生成的文件里面有数据),但是我用定时器去执行的时候,生成的文件内容为空,没有结果!!没有结果。。

定时器这样写的:

*/1 * /data/sh/backup_mysql.sh &

现在应该怎么解决这个问题?非常急,希望可以有大神说下方案,谢谢了。

阅读 5.3k
3 个回答

当执行脚本的时候可以全部备份,然后用定时器执行脚本的时候生成的备份文件内容为空的原因是因为里面开启myqldump命令需要是绝对路径,不的话找不到这个mysqldump命令导致出错。
刚刚回答评论编辑

用的什么定时任务?crontab?如果是,定时不应该是:分 时 日 月 周 吗?那每分钟执行一次应该写作 */1 * * * * /data/sh/backup_mysql.sh 这样吧。

会不会是因为数据库数据量太大,1分钟内数据库没有备份完成,那么下一分钟再执行,那么就没有结果产生,建议将脚本的时间间隔设置的大一些

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题