命令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