第乙個shell 日誌統計

2021-07-14 09:34:32 字數 1149 閱讀 9953

功能:統計日誌中包含特定字串的行數

#!/bin/bash

#輸入引數:要查詢的開始日期,要查詢的結束日期 例如: sh count.sh 20160625 20160703 注:區間不得超過15天

datebeg=$1

dateend=$2

#echo $datebeg

#echo $dateend

if [ ! -n "$datebeg" ]; then

echo '請輸入開始日期'

exit 2

fiif [ ! -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" ]

dothisdate=`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

fiecho "總量$search_allcount"

感想:shell的風格在賦值時不能有空格,數**算需加上expr,if條件用中括號,大小比較需用字母表示,等等,這些需要剛寫shell的時候注意下

第乙個Shell指令碼

開啟文字編輯器,新建乙個檔案,擴充套件名為sh sh代表shell 副檔名並不影響指令碼執行,見名知意就好,如果你用php寫shell 指令碼,副檔名就用php好了。輸入一些 bin bash echo hello world 是乙個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種...

第乙個shell指令碼

首先宣告,我的linux系統是centeros 64bit的 開啟終端,cd mnt hgfs share 進入以下目錄 mkdir shellfolder 建立資料夾shellfolder touch runstusys.sh 建立乙個shell程式 vi runstusys.sh 進行編輯,並輸...

第乙個shell指令碼

hostname term hello shell histsize ssh client world cvs rsh path 通過shell讀取文字檔案,並到系統變數中查詢是否存在 shell命令如下 bin sh filename env var.txt num cat filename wc...