背景:
有这样一段代码,有两种执行方式: 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 & # 创建进程前重新加载环境变量
有图有真相↓
浙公网安备 33010602011771号