CRON任务的坑
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CRON任务的坑相关的知识,希望对你有一定的参考价值。
命令not found问题
有一个备份脚本需要定时去执行,写入到cron中,发现没有备份数据,直接执行脚本没有问题,加上日志,发现mysql命令 not found
但是echo $PATH,mysql的路径在里面
[root@master tmp]#echo $PATH
/root/program/emqx/bin:/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/home/redis/bin:/root/bin
那就有一种推断了
定时任务中sh读取的启动文件和手动执行sh读取启动文件不一样,导致PATH的值不一样,没有mysql的路径
验证以下
vim /tmp/test.sh
#!/bin/sh
echo $PATH
加入定时任务中,查看输入为,验证了上边的猜想
/usr/bin:/bin
解决方法:
- 脚本中修改PATH环境变量(推荐这种,只需要可见你需要的命令)
PATH=$PATH:/usr/local/mysql/bin
export PATH
- 脚本中运行下/etc/profile
. /etc/profile
以上是关于CRON任务的坑的主要内容,如果未能解决你的问题,请参考以下文章
Linux crontab下关于使用date命令和sudo命令的坑