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

2014-11-24 03:03:28 · 作者: · 浏览: 3

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


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