WINDOW S系统日志导出工具的使用
2007-07-08 09:22
利用脚本编程格式化输出转存系统日志
dum pel.exe
日志对于操作系统来说其重要性时不言而喻的,一个优秀的n t网络的管理员,往往会定期的备份系统日志,以备查询服务器运行状况及系统安全状况。
如果利用系统日志的“另存为”功能手工备份,则比较麻烦,而且输出的日志难以实现格式化输出,微软的res ource kit工具包中有一个免费的查看本地或远程日志的小工具dum p,利用它可以把日志存为文本文件以备后需,在这里我利用windo ws脚本编程来实现定期备份并格式化输出h t ml文件,如果条件许可,可以直接转储到打印机上打印。下面是具体的实现方法。window s脚本编程包括vbs cript和java scrip t,这也是网页特效编程中常见的语言,实际上利用v bs和js强大的系统和网络管理功能,可以使系统管理员简化很多工作的。
vbs和js本身不提供察看日志的方法,但wscri pt.shell具有run方法,即可以运行w indow s 命令,所以我们要借助上面说的dum pe l工具,首先说一下它的使用方法,
dum pel -f file [-s \\\\server] [-l log [-m source]] [-e n1 ] [-r] [-t] [-d x]
常用的参数:
-f file 即为日志的存储位置和文件名
-s server在查看远程日志时使用(必须有adm in权限)
-m过滤日志条件
-l 指定日志,如系统日志(system),应用程序(applic ation),安全日志(securi ty),域控制器还有dns,文件复制等
例如,要把serv er01上安全日志保存为sec urity.log,
命令:dum pel -f securi ty.log -s \\\\server01 -l securi ty
然后即产生一个secu rity.log的文本文档,为了得到格式化输出的日志文件,我们采取下面的编程方法:
假设我们要查看日志的服务器为\\\\server, 存储位置为\\\\data\\backup,文件名为"计算
机名+日期+日志类型".ht ml
并通过计划任务,一天产生一个htm l文档,原代码如下:
logrep ort.js
m onth=new Array(12)
m onth[1]="一月"
m onth[2]="二月"
m onth[3]="三月"
m onth[4]="四月"
m onth[5]="五月"
m onth[6]="六月"
m onth[7]="七月"
m onth[8]="八月"
代码运行js特效
m onth[9]="九月"
m onth[10]="十月"
m onth[11]="十一月"
m onth[12]="十二月"
days=new Array(7)
days[1]="星期日"
days[2]="星期一"
days[3]="星期二"
days[4]="星期三"
days[5]="星期四"
days[6]="星期五"
days[7]="星期六"
functi on theDat a(aDate)
{
var curren tday=days[aDate.getDay()+1]
var curren tm ont h=m onth[aDate.getMon th()+1]
return curren tday+","+curren tm ont h+","+aDate.getDat e() }
var result;result=0
var ws=WScrip t.Create Objec t("WScrip t.shell")
pand envir onm en tstri ngs("%com put ernam e%") netdri ve="\\\\date\\backup"
today=new Date()
var logday=today.getDat e()
var logm on th=today.getMon th()
logarr ay=new Array(2)
logarr ay[0]="system"
logarr ay[1]="applic ation"
logarr ay[2]="securi ty"
for (l in logarr ay) {
ws.run("dum pel.exe /s \\\\server /l "+logarr ay[l]+" /f "+netdri ve+"\\\\"+c+"-"+l ogm on th+"-"+logday()+"-"+logarr ay[l]+".log /d 1",
0,"TRUE")
}
ForRea ding=1
ForApp endin g=8
for (l in logarr ay) {
var fs=new Active XObje ct("script ing.FileSy stemO bject")
var f=fs.opente xtfil e(""+netdri ve+"\\\\"+c+"-"+logm on th+"-"+logday()+"-"+log arr ay[l]+".log",ForRea ding,"T RUE")
fConte nts=f.ReadAl l()
f.Close()
var f=fs.OpenTe xtFil e(""+netdri ve+"\\\\"+c+"-"+logm on th+"-"+logday()+"-"+lo garr ay[l]+".htm",ForApp endin g,"T RUE")
fHeade r="<htm l><head><title>Daily"
fHeade r+=logarr ay[l]
fHeade r+=c
fHeade r+="</title></head>"
fHeade r+="<body bgcolo r=#ffffff text=#000000>"
fHeade r+="<h1>daily"
fHeade r+=logarr ay[l]
fHeade r+=" log report for "
fHeade r+=c
fHeade r+="</h1>"
fHeade r+="<h3>"
fHeade r+=t heDat a(today)
fHeade r+="</h3>"
fHeade r+="<pre>"
f.Write(fHeade r)
f.Write(fConte nts)
fFoote r="</pre></body></ht ml>"
fWrite(fFoote r)
f.Close()
}
将以上代码用记事本打开,并把后缀名存为js,并与dum放在同一目录下,双击即可运行,运行后自动建立"计算机名+日期+日志类型".ht ml
要使此脚本程序定期的进行日志备份,可以利用wi ndows图形化的计划任务或是“at"命令。
利用图形化的计划任务使脚本自动执行非常简单,这里不再详细介绍,用at命令同样可以达到目的。
例如需要在每天的0:00执行此脚本来备份系统日志,则在命令提示行下输入
at \\\\server /everyM,T,W,Th,F,S,Su 0:00 "path\\logrep ort.js"
此处serv er为lo greor t.js所在的机器,本机可省略。
path为l ogrep ort.js所在的路径,默认的为%system root%
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论