登录社区:用户名: 密码: 忘记密码 网页功能:加入收藏 设为首页 网站搜索  

文档

下载

图书

论坛

安全

源码

硬件

游戏
首页 信息 空间 VB VC Delphi Java Flash 补丁 控件 安全 黑客 电子书 笔记本 手机 MP3 杀毒 QQ群 产品库 分类信息 编程网站
 内容搜索 网页 下载 源代码
热点文章
  Postfix + Cyrus-IMAP + Cyr..
  AIX常见问题整理
  用OpenSWAN做Linux下的IPSec..
  打造Linux下超级安全的LAMP服..
  让你的Linux桌面更安全
  DHCP服务器的安装及正确配置
  DHCP服务器的安装及正确配置
  windows消息大全
  windows消息大全
  实现电子邮件身份验证的迫切..
  Windows服务端口大全
  Windows非法操作祥解
本站原创
最新招聘信息

您现在的位置:立华软件园->安全防线->安全配制
利用脚本编程格式化输出转存系统日志
发表日期:2006-03-09作者:[转贴] 出处:安全焦点  

日志对于操作系统来说其重要性时不言而喻的,一个优秀的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="<html><head><title>Daily "
fHeader+=logarray[l]
fHeader+=c
fHeader+="</title></head>"
fHeader+="<body bgcolor=#ffffff text=#000000>"
fHeader+="<h1>daily"
fHeader+=logarray[l]
fHeader+=" log report for "
fHeader+=c
fHeader+="</h1>"
fHeader+="<h3>"


fHeader+=theData(today)

fHeader+="</h3>"
fHeader+="<pre>"

f.Write(fHeader)
f.Write(fContents)

fFooter="</pre></body></html>"

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%

我来说两句】 【发送给朋友】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 利用脚本编程格式化输出转存系统日志
关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放 / 友情链接

Copyright ©2001-2003 Allrights reserved
e_mail:站长:webmaster(at)lihuasoft.net
网站编程QQ群  
京ICP备05001064号

页面生成时间:0.00714