crontab -l后显示:
30 23 * * * su - oracle -c "/oracle/dmpbackup.sh" > /dev/null 2>&1
/oracle/dmpbackup.sh的内容是:
## XX dmp ##
exp xx/xx@orcl file=/data/dmpbackup/xx/xx`date +%Y%m%d`.dmp
为啥定时就不执行呢?
------解决方案--------------------------------------------------------
给个思路吧:
用crontab -e 来编辑,写好后: “:wq” 保存。
这样肯定是执行的。
2: 再次检查你的shell,可以写个简单的shell 来测试一下。
vi /oracle/test.sh
!# /bin/sh
echo `date`
放到crontab 里。
------解决方案--------------------------------------------------------
应该是缺少相关的环境变量
在你的脚本的首行添加
. ~/.profile
------解决方案--------------------------------------------------------
su不用输密码的么?
------解决方案--------------------------------------------------------
su -;oracle -c "/oracle/dmpbackup.sh" > /dev/null
------解决方案--------------------------------------------------------
su -是一条命令,后边是一条命令,分开么。。
------解决方案--------------------------------------------------------
我遇见过同样的问题,解决的方法是:
将
su - oracle -c "/oracle/dmpbackup.sh" > /dev/null 2>&1
换成一个单独的脚本文件
------解决方案--------------------------------------------------------
设置下ORACEL_HOME等试试,如:
crontab -e -u oracle
30 23 * * * ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 ORACLE_SID=xxxx /u01/app/oracle/product/10.2.0/db_1/bin/exp xx/xx@orcl file=/data/dmpbackup/xx.dmp