我正在編寫一個shell腳本來解析日誌文件,並提取sudo成功和/或失敗的所有實例。我現在意識到,使用shell的正則表達式可能會更容易,但我不想花時間去挖掘(現在我正在付出代價)。無論如何:用於解析日誌文件的Shell腳本
sudobool=0
sudoCount=0
for i in `cat /var/log/auth.log`;
do
for word in $i;
do
if $word == "sudo:"
then
echo "sudo found"
sudobool=1;
sudoCount=`expr $sudoCount + 1`;
fi
done
sudobool=0;
done
echo "There were " $sudoCount " attempts to use sudo, " $sudoFailCount " of which failed."
所以,我對我寫的代碼的理解:讀取auth.log並逐行分解,這是存儲在我。我檢查每個單詞是否是sudo,如果是,我們翻轉bool並增加。一旦我們完成了解析該行,重置bool並移動到下一行。
然而,根據我的輸出判斷,shell正試圖執行日誌文件的單個單詞,通常返回'$ word:not found'。
所有偉大的補充,我的知識基礎。謝謝! –