您没有来错地!为了更好的发展,黑基网已于9月19日正式更名为【安基网】,域名更换为www.safebase.cn,请卸载旧的APP并安装新的APP,给您带来不便,敬请理解!谢谢

黑基Web安全攻防班
安基网 首页 IT技术 电脑技术 查看内容

利用脚本编程格式化输出转存系统日志

2009-7-15 13:59| 投稿: computer

摘要:       日志对于操作系统来说其重要性时不言而喻的,一个优秀的nt网络的管理员,往往会定期的备份系统日志,以备查询服务器运行状况及系统安全状况。如果...
      日志对于操作系统来说其重要性时不言而喻的,一个优秀的nt网络的管理员,往往会定期的备份系统日志,以备查询服务器运行状况及系统安全状况。如果利用系统日志的“另存为”功能手工备份,则比较麻烦,而且输出的日志难以实现格式化输出,微软的resource kit工具包中有一个免费的查看本地或远程日志的小工具dumpel.exe,利用它可以把日志存为文本文件以备后需,在这里我利用windows脚本编程来实现定期备份并格式化输出html文件,如果条件许可,可以直接转储到打印机上打印。下面是具体的实现方法。   windows脚本编程包括vbscript和javascript,这也是网页特效编程中常见的语言,实际上利用vbs和js强大的系统和网络管理功能,可以使系统管理员简化很多工作的。   vbs和js本身不提供察看日志的方法,但wscript.shell具有run方法,即可以运行windows命令,所以我们要借助上面说的dumpel工具,首先说一下它的使用方法,   dumpel -f file [-s \\\\server] [-l log [-m source]] [-e n1 n2 n3...] [-r] [-t] [-d x]   常用的参数:   -f file 即为日志的存储位置和文件名   -s server 在查看远程日志时使用(必须有admin权限)   -m 过滤日志条件   -l 指定日志,如系统日志(system),应用程序(application),安全日志(security),域控制器还有dns,文件复制等   例如,要把server01上安全日志保存为security.log,   命令:dumpel -f security.log -s \\\\server01 -l security   然后即产生一个security.log的文本文档,为了得到格式化输出的日志文件,我们采取下面的编程方法:   假设我们要查看日志的服务器为\\\\server,存储位置为\\\\data\\backup,文件名为 "计算机名+日期+日志类型".html,并通过计划任务,一天产生一个html文档,原代码如下:   logreport.js   month=new Array(12)   month[1]="一月"   month[2]="二月"   month[3]="三月"   month[4]="四月"   month[5]="五月"   month[6]="六月"   month[7]="七月"   month[8]="八月"   month[9]="九月"   month[10]="十月"   month[11]="十一月"   month[12]="十二月"   days=new Array(7)   days[1]="星期日"   days[2]="星期一"   days[3]="星期二"   days[4]="星期三"   days[5]="星期四"   days[6]="星期五"   days[7]="星期六"   function theData(aDate)   {   var currentday=days[aDate.getDay()+1]   var currentmonth=month[aDate.getMonth()+1]   return currentday+","+currentmonth+","+aDate.getDate()   }   var result;result=0   var ws=WScript.CreateObject("WScript.shell")   c=ws.expandenvironmentstrings("%computername%")   netdrive="\\\\date\\backup"   today=new Date()   var logday=today.getDate()   var logmonth=today.getMonth()   logarray=new Array(2)   logarray[0]="system"   logarray[1]="application"   logarray[2]="security"   for (l in logarray) {   ws.run("dumpel.exe /s \\\\server /l "+logarray[l]+" /f "+netdrive+"\\\\"+c+"-"+logmonth+"-"+logday()+"-"+logarray[l]+".log /d 1",   0,"TRUE")   }   ForReading=1   ForAppending=8   for (l in logarray) {   var fs=new ActiveXObject("scripting.FileSystemObject")   var f=fs.opentextfile(""+netdrive+"\\\\"+c+"-"+logmonth+"-"+logday()+"-"+logarray[l]+".log",ForReading,"TRUE")   fContents=f.ReadAll()   f.Close()   var f=fs.OpenTextFile(""+netdrive+"\\\\"+c+"-"+logmonth+"-"+logday()+"-"+logarray[l]+".htm",ForAppending,"TRUE")   fHeader=""   fHeader+=""   fHeader+="   daily"   fHeader+=logarray[l]   fHeader+=" log report for "   fHeader+=c   fHeader+=""   fHeader+=""   fHeader+=theData(today)   fHeader+=""   fHeader+="   "f.Write(fHeader)  f.Write(fContents)  fFooter=""   fWrite(fFooter)   f.Close()   }   将以上代码用记事本打开,并把后缀名存为js,并与dumpel.exe放在同一目录下,双击即可运行,运行后自动建立"计算机名+日期+日志类型".html   要使此脚本程序定期的进行日志备份,可以利用windows图形化的计划任务或是“at"命令。   利用图形化的计划任务使脚本自动执行非常简单,这里不再详细介绍,用at命令同样可以达到目的。   例如需要在每天的0:00执行此脚本来备份系统日志,则在命令提示行下输入   at \\\\server /every M,T,W,Th,F,S,Su 0:00 "path\\logreport.js"   此处server为logreort.js所在的机器,本机可省略。   path为logreport.js所在的路径,默认的为%systemroot%

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

最新

返回顶部