当前位置:  技术问答>linux和unix

用crontabl自动执行exp为何出错?

    来源: 互联网  发布时间:2015-06-04

    本文导语:  需要每天自动备份oracle数据库(用exp导出几个表),尝试用crontab来执行。我写了一段shell脚本如下:  #!/bin/sh  #name:backupdb.sh  exp system/manager tables=students log=/usr/hezhiroy/xxx.log file=/usr/hezhiroy/xxx.dmp >/dev/null 2>$1  这个...

需要每天自动备份oracle数据库(用exp导出几个表),尝试用crontab来执行。我写了一段shell脚本如下: 
#!/bin/sh 
#name:backupdb.sh 
exp system/manager tables=students log=/usr/hezhiroy/xxx.log file=/usr/hezhiroy/xxx.dmp >/dev/null 2>$1 
这个脚本在终端下手动执行一点问题没有,当我把它加到crontab文件中:0 3 * * * /usr/hezhiroy/backupdb.sh >yyy.log后,用crontab -l 也可以看到该条目,可是到了指定的时间,其它的条目都顺利执行,唯独这一条不行,请高手指点!!! 
(我这两天一共只睡了10个小时,程序员的命真苦啊......呵呵,祝大家新年快乐)


|
crontab是用什么用户执行的?
要用执行backupdb.sh 的用户那个用户执行crontab -e 进行编辑。

如果还是不行的话,可以在backupdb.sh 中加入oracle的环境变量:
export ORACLE_HOME=
export ORACLE_OWNER=
export ORACLE_BASE=
export LD_LIBRARY_PATH=
export ORACLE_SID=
export PATH=
export NLS_LANG=

|
.sh文件要设置模式
chmod 755 /home/XXXX/XXXXXX.sh

另外,我习惯把记录log写在,sh文件中,在crontab中不知行不行,而且路径要写清楚

举例:(我有个文件叫timer.sh,其中调用我编写的一个java程序)
-----------timer.sh-----------
cd /home/wap/orion/classes/
java Timer >> /home/wap/orion/classes/timerlog.log &
-----------(>>代表续写,>代表覆盖)---------

crontab -e
0 3 * * * /home/wap/orion/classes/timer.sh

|
你没有配置oracle需要的环境变量,你可以在oracle的用户状态下用env看看以下oracle的环境变量:
ORACLE_HOME
ORACLE_SID
NLS_LANG
PATH
等等,把它们记下来,然后加到脚本文件的开始位置就可以了。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3