第一个shell 日志统计

功能:统计日志中包含特定字符串的行数

#!/bin/bash
#输入参数:要查询的开始日期,要查询的结束日期 例如: sh count.sh 20160625 20160703 注:区间不得超过15天

datebeg=$1
dateend=$2
#echo $datebeg
#echo $dateend

if [ ! -n "$datebeg" ]; then
    echo '请输入开始日期'
    exit 2
fi

if [ ! -n "$dateend" ]; then
    echo '请输入结束日期'
    exit 2
else
    beg_s=`date -d "$datebeg" +%s`
    end_s=`date -d "$dateend" +%s`
    duringday=`expr $end_s - $beg_s`
    duringday=`expr $duringday / 86400`
    if [ $duringday -gt 15 ];then
        echo '输入日期区间过大'
        exit 3
    fi
    search_allcount=0
    while [ "$beg_s" -le "$end_s" ]  
        do
          thisdate=`date -d @$beg_s +%Y%m%d`
          #echo $thisdate
          thisday=`date -d @$beg_s +%m%d`
          #echo $thisday
          search=`grep -c 'search words' $thisday.log`
          #Today=`date -d $thisdate +%Y%m%d`
          echo "$thisdate搜索总量$search"
          search_allcount=`expr $search_allcount + $search`

        beg_s=$((beg_s+86400))
    done
fi
echo "总量$search_allcount"


感想:shell的风格在赋值时不能有空格,数学运算需加上expr,if条件用中口号,大小比较需用字母表示,等等,这些需要刚写shell的时候注意下

猜你喜欢

转载自blog.csdn.net/andysongjinqiang/article/details/51821775
今日推荐