0
点赞
收藏
分享

微信扫一扫

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

解决方法:

  1. 脚本中修改PATH环境变量(推荐这种,只需要可见你需要的命令)

PATH=$PATH:/usr/local/mysql/bin
export PATH

  1. 脚本中运行下/etc/profile

. /etc/profile

举报

相关推荐

0 条评论