我有bash脚本,我放入了crontab。它每10分钟运行一次。当我手动运行它时,它会给出完美的结果。它创建“.tmp”文件,这些“.tmp”文件不为空,但Crontab结果并不像我预期的那样。它只创建“.tmp”文件。 “.tmp”文件的内容为空。在这台计算机上有多个用户。它可能是用户权限问题吗?可能是主要原因是什么?
提前致谢..
抱歉,我忘了:)我的代码。
export GGATE=/ggate/ggs11g
alias gate='clear;cd $GGATE;./ggsci'
export ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_1
export ORACLE_SID=KNNPRO17_1
export PATH=$PATH:$ORACLE_HOME/bin:$LD_LIBRARY_PATH:${GGS_HOME}
export LIBPATH=$ORACLE_HOME/lib:$GGS_HOME:$PATH
export LD_LIBRARY_PATH=$PATH:$ORACLE_HOME:$ORACLE_HOME/lib:$GGS_HOME
MYGGSCI=$GGATE/ggsci
LOGDIR=$GGATE/scripts/logs
GGSLAGFILE01=${LOGDIR}/ggslagfile01.tmp
GGSLAGFILE02=${LOGDIR}/ggslagfile02.tmp
GGSLAG_EMAIL=${LOGDIR}/ggslag_email.tmp
$MYGGSCI << eof > $GGSLAGFILE01
info all
eof
cat $GGSLAGFILE01 | egrep -i '(EXTRACT)'|cut -d":" -f 1,2,3,4,5,6 | tr ":" " "|tr -s '[:space:]'|cut -d" " -f1,2,3,4,5,6,7,8,9 >$GGSLAGFILE02
awk '{if ( $4 > 00 || $5 >=30 || $7 > 00 || $8 >=30 ) {print $1 " " $3 " HAS LAG of " $4" hour " $5 " min for checkpoint " $7 " hour " $8 " min -- at -- " d "\n" }}' d="$(date)" $GGSLAGFILE02 > $GGSLAG_EMAIL
if [ -s $GGSLAG_EMAIL ]
then
mailx -s "${ORACLE_SID} Extract LAG ! on GoldenGate" "it.io.db.goldengate@vodafone.com" < $GGSLAG_EMAIL
exit 1
else
exit 0
fi
和
我的crontab是
00,10,20,30,40,50 * * * * ksh /export/GoldenGate/scripts/check.sh 2&gt; / dev / null
答案 0 :(得分:0)
你的可能是:
/ggate/ggs11g/ggsci
你从打来的
$MYGGSCI
需要您运行它的用户的一些环境变量。 要查看是否存在此问题,请修改crontab条目,如下所示:
00,10,20,30,40,50 * * * * . $HOME/.bashrc; /bin/ksh /export/GoldenGate/scripts/check.sh 2>/dev/null
. $HOME/.bashrc;
从“.bashrc”文件中获取环境变量。