Linux下一个检查跑批是否成功的Shell


Shell脚本如下:

cat log_check.sh

export yesterday=`date -d "1 days ago" +%Y%m%d`
export today=`date +%Y%m%d`
if [ -z $(ls /root/edw/bad) ] && [ -f /root/edw/ok_$yesterday.dat ]; then
echo [$today]'Run batch success!'>>log_check.log
else
echo [$today]'Run batch failed!Please call to inform the relevant staff!'>>log_check.log
fi

知识点:

1、 Linux上取昨天日期

yesterday=`date -d "1 days ago" +%Y%m%d`

2、 文件是否存在的判断

[ -f /root/edw/ok_$yesterday.dat ]

3、 目录是否为空的判断

[ -z $(ls /root/edw/bad) ]

注:这里的字符串用到了一个ls命令来判断

4、 两个条件之间的关联

这里用到与的关系:&&

其中:[ -z $(ls /root/edw/bad) ] && [ -f /root/edw/ok_$yesterday.dat ]与[ -z $(ls /root/edw/bad)  -a -f /root/edw/ok_$yesterday.dat ]是等效的,表达的一个意思。

5、 If-if结构

If 条件; then

命令1

Else

命令2

fi

6、 对运行结果的过滤查看,如查看当天的跑批运行情况

awk '/[`date +%Y%m%d`]/{print $0 }' log_check.log

说明:过滤出日期为今天的,并且打印所有内容。

相关内容