
回复
作者 | IT学习道场
来源 | IT学习道场(ID:itlearndojo)
之所以发布这篇文章,在重新审查已发布的博文时发现以前发布的【mysql的安全措施了解下】的定时器中描述不全,存在数据备份失败问题,这里补充下解决方案,带来的失误,深感抱歉,具体现象表现为:
问题描述:
Shell脚本手动执行可以正常运行,并得到正确结果;使用Crontab定时调度的时候,Shell脚本执行出来的结果数据量为0。
原因:
Linux中用crontab执行定时任务不会缺省的从用户profile文件中读取环境变量参数,所以经常导致在手工执行某个脚本时是成功的,但是到crontab中试图让它定期执行时就是会出错。这是因为用户登录Linux操作系统的时候,”/etc/profile”, “~/.bash_profile”等配置文件会被自动执行,而crontab定时调度的时候可能不会执行配置文件。
解决方案:
Shell脚本缺省的 #!/bin/sh 开头换行后的第一行添加,可以参考 菜鸟教程
最终mysql的备份脚本mysql_dump.sh内容如下:
定时任务执行
使用linux的crontab命令定时执行备份数据的脚本
编辑定时任务,按 i 进入编辑模式
这里凌晨二点执行一次定时器规则
编辑完保存即可,(夜猫子熬不到半夜两点)
按 【Esc】然后 输入 :wq 保存退出
定时任务的执行最小单位为分钟,详情代表如下:
注意要开启你的定时器,定时器常用操作命令如下: