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
说明:过滤出日期为今天的,并且打印所有内容。