导航

记:crontab定时器读取env信息不全

Posted on 2022-02-27 13:59  old_dog~  阅读(143)  评论(0)    收藏  举报

背景: 

有这样一段代码,有两种执行方式:  crontab定时器、手动执行

#!bin.bash

echo $redispasswd

  你猜,结果一样不?

1、手动执行

 

2、crontab定时器

创建定时器

 

 

输出日志

 

答案只有一个: 不一样

 

原因:

      crontab创建子进程的时候只会给基本的环境变量,导致crontab创建的进程环境变量不全!

方案:

export >  tmp_env  # 导出环境变量到文件
*/1 * * * * root source /var/log/tmp_env &&sh /var/log/test.sh >/var/log/test.log 2>&1 &  # 创建进程前重新加载环境变量

有图有真相↓