Chinaunix首页 | 论坛 | 博客
  • 博客访问: 95427
  • 博文数量: 9
  • 博客积分: 330
  • 博客等级: 一等列兵
  • 技术积分: 117
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-05 18:36
文章分类

全部博文(9)

文章存档

2012年(4)

2011年(1)

2010年(4)

分类: LINUX

2010-09-04 11:50:29

在crontab中如何引用已定义的环境变量
   一个shell脚本 /root/test/shell/test_crontab_env.sh,内部使用了一个环境变量 TEST_CRONTAB_ENV=test_crontab_env
   且TEST_CRONTAB_ENV存在于 /etc/profile 中
   如:
   #!/bin/bash
   echo "`date +%Y-%m-%d" "%H:%M:%S` $TEST_CRONTAB_ENV" >> /tmp/test_crontab_env.file
   手动执行, 运行结果:
   2010-09-04 11:23:38 test_crontab_env
   添加到 crontab 中如下
   */1 * * * * /root/test/shell/test_crontab_env.sh
   结果:
   $> cat /tmp/test_crontab_env.file
   2010-09-04 11:25:01
   2010-09-04 11:26:01
   ...
   这里引用的环境变量无效了.  

   使环境变量在crontab中生效的方法:
   1.传参的方式
     crontab中
       */1 * * * * /root/test/shell/test_crontab_env.sh "test_crontab_env"
     test_crontab_env.sh 中
       #!/bin/bash
       echo "`date +%Y-%m-%d" "%H:%M:%S` $1" >> /tmp/test_crontab_env.file
   2.在该shell脚本中定义环境变量
     test_crontab_env.sh 中
       #!/bin/bash
       TEST_CRONTAB_ENV=test_crontab_env
       echo "`date +%Y-%m-%d" "%H:%M:%S` $TEST_CRONTAB_ENV" >> /tmp/test_crontab_env.file
   3.在该shell脚本中加载环境变量文件
     #!/bin/bash
     source /etc/profile
     echo "`date +%Y-%m-%d" "%H:%M:%S` $TEST_CRONTAB_ENV" >> /tmp/test_crontab_env.file


   个人觉得还是第三种方法最实用

------------- end -------------
From: GS
-------------------------------

阅读(19344) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

jkdcdlly2015-10-10 15:18:18

还有一种,可以在crontab中加载环境变量 
0 2 * * * . /etc/profile; sh /root/test/shell/test_crontab_env.sh

chinaunix网友2010-09-07 11:17:00

Download More than 1000 free IT eBooks: http://free-ebooks.appspot.com