crontab使用环境变量

简介: 两种方式: 1)直接在crontab中定义变量,如: A=123 * * * * * echo $A > /tmp/a.txt 注意在定义变量时不能使用$引用其它变量,如下面的做法错误: A=123 B=$A 2)在/etc/environment中定义变量 此文件定义变量的格式为:NAME=VALUE,和crontab相关,也不能使用$引用其它变量。
两种方式:
1)直接在crontab中定义变量,如:
A=123
* * * * * echo $A > /tmp/a.txt


注意在定义变量时不能使用$引用其它变量,如下面的做法错误:
A=123
B=$A


2)在/etc/environment中定义变量
此文件定义变量的格式为:NAME=VALUE,和crontab相关,也不能使用$引用其它变量。
操作系统在登录时使用的第一个文件是/etc/environment文件,/etc/environment文件包含指定所有进程的基本环境的变量。
注意,千万不要有“PATH=$PATH:/usr/local/jdk/bin”这样的用法,这将导致系统无法启动。


技巧:
想保持多台机器的crontab一致,但变量值不完全相同,
这个时候可以考虑将变量配置在/etc/environment中,这样crontab就可以相同了。


如,机器1:
A=123


机器2:
A=456


两者的crontab配置:
* * * * * echo "$A" > /x.txt


一般不建议直接修改/etc/environment,而可采取在目录/etc/profile.d下新增一个.sh文件方式替代。
但如果想crontab中生效,则只能修改/etc/environment,经测试/etc/profile.d方式不起作用。
注意:在/etc/environment设置的变量,在shell中并不生效,但crontab中有效。
相关文章
|
分布式计算 Java Hadoop
crontab环境变量问题
在crontab中运行脚本来查看hadoop相关信息,由于hadoop、java默认部署在/usr/local下面, 所以导致crontab执行时出现报错。具体与环境变量有关系,下文描述比较清楚。
1456 0
|
Shell PHP
解决crontab无法读取环境变量
解决crontab无法读取环境变量
155 0
|
Linux
Linux配置环境变量
Linux配置环境变量
44 0
|
Linux
crontab Linux下 crontab 命令的用法:sudo crontab -?
命令解释: cron 是linux系统下一个自动执行指定任务的程序. cron服务是linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务:
214 0
|
Shell 调度 Linux
|
Shell Linux 调度