windows日志监控

  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

转载于:https://www.cnblogs.com/GXLo/p/5207702.html

你可能感兴趣的:(windows日志监控)