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

IT 文章7天前更新 小编
0 0 0

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

原因分析

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

tail -100 /var/log/cron

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

ad

程序员导航

优网导航旗下整合全网优质开发资源,一站式IT编程学习与工具大全网站

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即可,然后再次上传就解决了这个问题。

ad

AI 工具导航

优网导航旗下AI工具导航,精选全球千款优质 AI 工具集

总结

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

© 版权声明

相关文章

暂无评论

暂无评论...