Bash脚本不稳定的结果

时间:2018-01-03 12:19:06

标签: linux bash unix cron

我有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

1 个答案:

答案 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”文件中获取环境变量。