【问题标题】:Bash Script Unstable ResultBash 脚本不稳定的结果
【发布时间】:2018-06-13 02:54:14
【问题描述】:

我有 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>/dev/null

【问题讨论】:

标签: linux bash unix cron


【解决方案1】:

您的:

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

【讨论】:

  • 丢弃 stderr(在所有文件的 crontab 中)是让自己陷入黑暗的好方法。
  • 谢谢@AnythingIsFine。 @Jens 你的解决方案是什么?
  • @Jens whas 建议您可以通过将 stderr 输出保存到文件以查看后执行情况来找出 crontab 中的问题:00,10,20,30,40,50 * * * * 。 $HOME/.bashrc; /bin/ksh /export/GoldenGate/scripts/check.sh >> /tmp/crontab_test.txt 2>&1
猜你喜欢
  • 2013-12-07
  • 1970-01-01
  • 1970-01-01
  • 2015-09-19
  • 2018-03-17
  • 1970-01-01
  • 1970-01-01
  • 2014-10-19
  • 1970-01-01
相关资源
最近更新 更多