crontab定时执行mysql备份脚本出错导致数据为空

潘老师最近写了一个MySQL定时备份的shell脚本,但是发现通过定时任务执行的备份文件大小是空的,而通过手工执行脚本生成的备份文件是正常有数据的,原因在于这里定时任务执行的脚本中出现了错误。

原因分析

首选我们来定位原因,通过查看crontab的执行日志:

tail -100 /var/log/cron

这里我查看了cron日志的最后100行,发现了问题所在。具体如图:

crontab执行MySQL定时备份报错
也就是说crontab在执行我的备份脚本时发现mysqldump指令找不到,这其实是很奇怪的事,mysql环境变量也是配置了的,而且单独执行shell脚本时也没问题,但crontab执行就找不到,可能是因为这个环境变量配置只针对某个用户有效,而crontab执行的默认用户并没有该环境变量配置导致的。

解决办法

咱不管它具体什么原因,直接一招解决即可。
1)先找到mysqldump指令全路径,可以通过如下指令:

whereis mysqldump

我这里发现是在/home/mysql/mysql/bin/mysqldump

2)然后只需要将原shell脚本中的mysqldump改为全路径的/home/mysql/mysql/bin/mysqldump即可,然后再次上传就解决了这个问题。

总结

以上就是crontab定时执行mysql备份脚本出错导致数据为空的原因和解决方案,找到原因基本就找到了方案。

原创文章,作者:博主,如若转载,请注明出处:https://www.unmao.com/tech/1727.html

下载资源版权归原作者所有,若有侵权,请邮件ziyeblog@126.com及时删除。

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
博主的头像博主管理员
上一篇 2026-07-03 18:08
下一篇 2026-07-03 18:18

相关推荐

发表回复

登录后才能评论
微信
QQ

博主邮箱:ziyeblog@126.com

打赏