標籤:
bat指令碼,主要作用,每個五分鐘讀取日文本件中新增內容,進行錯誤賽選,如果有錯誤資訊,將錯誤資訊用郵件發送給管理員。
其中awk和sed需要手動下載
:讀取number.txt文檔,擷取上一次執行時檔案的行數
for /f "delims=" %%f in (number.txt) do (
set a=%%f
)
:讀取新增行,進行ERROR篩選,將賽選資訊匯入err檔案中
D:\tools\awk\awk.exe ‘{print NR" "$0}‘ D:\unitrade\esblls\logs\app.log | D:\tools\sed\sed.exe -n "%a%,$p" | findstr "ERROR" > error_tj.log
:上面這條是本指令碼最費時間的地方,因為當我在awk ‘NR>%A%{PRINT}的時候一直報錯,所以就加了sed賽選起始行
set var="error_tj.log"
:擷取檔案行數,如果為null,則沒有報錯
for /f "delims=" %%i in (%var%) do (
set /a n+=1
)
:::::::::::::: 發送郵件參數設定::::::::::::::
set [email protected]
set user=xxx
set pass=xxx
set to=收件者
set subj=日誌監控
set mail=error_tj.log
set attach=*.jpg
set server=smtp.163.com
set debug=-debug -log blat.log -timestamp
:判斷err檔案中是否有資料,有的話就將err檔案通過郵件發送給管理員
if %n% GTR 0 ( D:\tools\Blat250\full\blat.exe %mail% -to %to% -base64 -charset Gb2312 -subject %subj% -attach %attach% -server %server% -f %from% -u %user% -pw %pass% %debug% )
:擷取最新的行號,並記錄到number.txt檔案中
D:\tools\awk\awk.exe ‘{print NR}‘ D:\unitrade\esblls\logs\app.log | D:\tools\sed\sed.exe -n "$p" > number.txt
windows日誌監控