操作系统Red Hat Enterprise Linux Server release 5 (Tikanga)
数据库oracle10g我在oracle用户下写了个脚本,abc.sh在oracle下运行这个脚本./abc.sh,没有问题。但是我在oracle用户下用crontab -e命令设定该脚本自动运行,却有问题。脚本还是允许的,查看/var/mail/文件夹下面的oracle文件,查看到脚本还是定时运行了的,但是说脚本中的sqlplus命令和imp命令找不到。这应该是属于运行脚本的用户身份不对,运行脚本的身份可能是root身份。请问如何解决该问题?
听人说,不能再shell脚本用切换用户的。而且我的脚本是在oracle用户身份下编写的。下面是/var/mail/文件夹下oracle文件中的部分内容From [email protected] Wed Apr 14 03:59:06 2010
Return-Path: <[email protected]>
Received: from localhost.localdomain (localhost.localdomain [127.0.0.1])
by localhost.localdomain (8.13.8/8.13.8) with ESMTP id o3DJx5Gr006550
for <[email protected]>; Wed, 14 Apr 2010 03:59:05 +0800
Received: (from oracle@localhost)
by localhost.localdomain (8.13.8/8.13.8/Submit) id o3DJx1ic006542;
Wed, 14 Apr 2010 03:59:01 +0800
Date: Wed, 14 Apr 2010 03:59:01 +0800
Message-Id: <[email protected]>
From: [email protected] (Cron Daemon)
To: [email protected]
Subject: Cron <oracle@localhost> /home/oracle/abc.sh
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/oracle>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=oracle>
X-Cron-Env: <USER=oracle>/home/oracle/datain.sh: line 3: sqlplus: command not found
date: cannot set date: Operation not permitted
/home/oracle/datain.sh: line 236: imp: command not found
数据库oracle10g我在oracle用户下写了个脚本,abc.sh在oracle下运行这个脚本./abc.sh,没有问题。但是我在oracle用户下用crontab -e命令设定该脚本自动运行,却有问题。脚本还是允许的,查看/var/mail/文件夹下面的oracle文件,查看到脚本还是定时运行了的,但是说脚本中的sqlplus命令和imp命令找不到。这应该是属于运行脚本的用户身份不对,运行脚本的身份可能是root身份。请问如何解决该问题?
听人说,不能再shell脚本用切换用户的。而且我的脚本是在oracle用户身份下编写的。下面是/var/mail/文件夹下oracle文件中的部分内容From [email protected] Wed Apr 14 03:59:06 2010
Return-Path: <[email protected]>
Received: from localhost.localdomain (localhost.localdomain [127.0.0.1])
by localhost.localdomain (8.13.8/8.13.8) with ESMTP id o3DJx5Gr006550
for <[email protected]>; Wed, 14 Apr 2010 03:59:05 +0800
Received: (from oracle@localhost)
by localhost.localdomain (8.13.8/8.13.8/Submit) id o3DJx1ic006542;
Wed, 14 Apr 2010 03:59:01 +0800
Date: Wed, 14 Apr 2010 03:59:01 +0800
Message-Id: <[email protected]>
From: [email protected] (Cron Daemon)
To: [email protected]
Subject: Cron <oracle@localhost> /home/oracle/abc.sh
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/oracle>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=oracle>
X-Cron-Env: <USER=oracle>/home/oracle/datain.sh: line 3: sqlplus: command not found
date: cannot set date: Operation not permitted
/home/oracle/datain.sh: line 236: imp: command not found
Job --- Call Program
Scheduler --- Run it when needed
bakname=`date -s "-1 days" +%Y%m%d`rm -f /home/oracle/newdata.dmp.gzrm -f /home/oracle/newdata.dmpcp /home/oracle/bakdata/${bakname}.dmp.gz /home/oracle/newdata.dmp.gzgunzip /home/oracle/newdata.dmp.gz就是上述命令中应用到了date,这些语句怎么会报这个错呢?
date: cannot set date: Operation not permitted谁能解释一下,为什么会有这个错?
如果要实现上述代码的同样功能,但又不报这个错,该如何写呢?