crontab环境变量读取

2017-09-26  本文已影响0人  是阿离

问题

前期使用crontab定时执行bash shell脚本时,都通过在shell一开始生效环境变量来避免脚本执行失败,自己常用的环境变量为:

source /home/francis/.bash_profile
source /etc/profile

现在有俩疑问:
1、crontab是用哪个用户执行shell脚本
2、login主机时读取环境变量的顺序

解决

问题一 、crontab是用哪个用户执行shell脚本

每个用户都可以拥有自己的crontab,但只有root用户能进行crontab的停启。
该用户是否可以crontab可以通过/etc/cron.deny/etc/cron.allow 来进行管理。该用户不可crontab情况有:

通过简单bash shell脚本对crontab用户进行验证:(当前用户francis

#!/bin/bash

echo `whoami` > 绝对路径/test/hi_out
echo $LANG >> 绝对路径/test/hi_out

可以看出当前用户的crontab定时是用当前用户执行,只是没读取环境变量。

login主机时读取环境变量的顺序
login读取环境变量顺序

可以看出login模式下,crontab要生效的环境变量都会自动执行。

参考文章

Linux 登陆shell,交互shell以及环境变量读取顺序

上一篇 下一篇

猜你喜欢

热点阅读