用于脚本输出的条件子句的Shell脚本

时间:2014-03-18 00:43:28

标签: 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/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计划),而是应该每隔一小时发送一次实际输出,除非计数发生变化。

1 个答案:

答案 0 :(得分:0)

你不能改变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