码迷,mamicode.com
首页 > 其他好文 > 详细

crond与环境变量的问题

时间:2015-05-18 10:58:11      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

问题描述:

写了一个exp的脚本,放到了oracle的crontab中,但一直不能执行。

问题原因

crond默认不会加载该用户的.profile和.bashrc文件,它的执行环境只能有一些最基本的环境变量,因此exp的命令因找不到而不执行。

验证过程

写了一个脚本,赋予777权限
[root@DBBANK ~]# cat /tmp/wjf/env 
env |wall
分别把这个脚本加入到root和oracle两个用户的定时任务中

[root@DBBANK ~]# whoami
root
[root@DBBANK ~]# crontab -l
01 * * * * /tmp/wjf/env
[root@DBBANK ~]# 
[oracle@DBBANK ~]$ whoami
oracle
[oracle@DBBANK ~]$ crontab -l
02 * * * * /tmp/wjf/env
[oracle@DBBANK ~]$ 
时间到,执行结果为

Broadcast message from root@DBBANK (Fri May  8 17:36:02 2015):

SHELL=/bin/sh
USER=root
PATH=/usr/bin:/bin
_=/usr/bin/env
PWD=/root
HOME=/root
SHLVL=2
LOGNAME=root
[oracle@DBBANK ~]$ 
Broadcast message from oracle@DBBANK (Fri May  8 17:38:01 2015):


SHELL=/bin/sh
USER=oracle
PATH=/usr/bin:/bin
_=/usr/bin/env
PWD=/home/oracle
HOME=/home/oracle
SHLVL=2
LOGNAME=oracle
可以看出crond打开的shell环境。只有一些最基本的环境变量,所以,你不要想着把oracle下的命令写成脚本放在oracle的定时任务就万事大吉了。实际它是不行的。

解决办法

在脚本里手动export环境变量。

或者

在脚本最前面source  环境变量文件

或者

. (空格)  环境变量文件


crond与环境变量的问题

标签:

原文地址:http://blog.csdn.net/jx_jy/article/details/45582949

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!