Oracle11g 具有用于脚本输出的条件子句的Shell脚本
我是这个网站的新手,也不熟悉shell脚本,这是我的第一个表单。请帮助我使用以下shell脚本 我正在执行一个shell脚本,每15分钟运行一次(在cronjob中计划),它在一个输出文件中提供一个输出,该文件通过电子邮件发送Oracle11g 具有用于脚本输出的条件子句的Shell脚本,oracle11g,Oracle11g,我是这个网站的新手,也不熟悉shell脚本,这是我的第一个表单。请帮助我使用以下shell脚本 我正在执行一个shell脚本,每15分钟运行一次(在cronjob中计划),它在一个输出文件中提供一个输出,该文件通过电子邮件发送 CONCCOUNT=`cat $OUT_DIR/EBS_Locked_Accounts.out|grep INVALID |wc -l` echo $CONCCOUNT if [ $CONCCOUNT != 0 ] then outputFile="$OUT_DIR/E
CONCCOUNT=`cat $OUT_DIR/EBS_Locked_Accounts.out|grep INVALID |wc -l`
echo $CONCCOUNT
if [ $CONCCOUNT != 0 ]
then
outputFile="$OUT_DIR/EBS_Locked_Accounts.out"
(
echo "From: oraiga@icp.com"
echo "To: $MAILLIST"
echo "MIME-Version: 1.0"
echo "Subject: Locked Accounts in EBS"
echo "Content-Type: text/html"
cat $outputFile
) | sendmail -t
我的要求是:
我不希望脚本每15分钟发送一次输出(无法更改cronjob计划),相反,它应该每一小时发送一次实际输出,除非计数发生变化。如果不能更改cronjob计划,则可以创建一个计数为4的文件,然后发送并重置计数,因为15分钟*4=1小时。像这样:
echo“1”>croncount.txt
#!/usr/bin/bash
CRONCNT=$(cat "croncount.txt")
if [ $CRONCNT == 4 ]; then
if [ $CONCCOUNT != 0 ]; then
outputFile="$OUT_DIR/EBS_Locked_Accounts.out" ( echo "From: oraiga@icp.com" echo "To: $MAILLIST" echo "MIME-Version: 1.0" echo "Subject: Locked Accounts in EBS" echo "Content-Type: text/html" cat $outputFile ) | sendmail -t
fi
echo "1" > croncount.txt
else
CRONCNT=$((CRONCNT+1))
echo "$CRONCNT" > croncount.txt
fi
脚本现在在第四次执行时将输出发送到邮件,但我需要再添加一个条件,即如果这些执行之间的输出有任何差异,则脚本应将更改发送到邮件。示例:CONCCOUNT文件在第一次执行(15分钟)时有一些值,如5,在第二次执行时值没有变化,因此不需要邮件,但现在在第三次执行(45分钟)时,值变为6,然后它应该在第三次执行时发送邮件通知。希望我能清楚地解释我的要求。提前感谢您的帮助。不确定您到底在寻找什么,但是如果您想要一个复合语句,您可以执行以下操作:
if[$CRONCNT==4]&&&[$CONCCOUNT!=0];然后
。。。如果我的答案对汉克很有帮助,别忘了投票支持我的答案。。。不幸的是,它仍然不符合我的目的。