中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » WINDOWS Eventlog每日備份Scripts腳本
作者:
标题: WINDOWS Eventlog每日備份Scripts腳本 上一主题 | 下一主题
ymtien
初级用户





积分 36
发帖 11
注册 2006-9-26
状态 离线
『楼 主』:  WINDOWS Eventlog每日備份Scripts腳本

前言:
在管理windows平台的服務器時,常常在系統發生問題或是服務器上運行的服務發生異常時,我們第一個一定是先打開"事件檢查器"來查看Eventlog,查看是不是有異常的訊息產生,但是windows的log產生默認下是不會以日期來自動備份的,往往要找一個問題都要在一堆log裡翻呀找呀,好不方便,如果能夠每天在午夜12點59分整以全文字檔備份每天的eventlog,那我們就可以在問題發生時,把我們要查找的eventlog以照日期調閱出來,方便又快速~以下小弟我就寫了一個很小但又方便的dos scripts提供給大家參考囉!

一.實作:
首先scripts的組成有以下三個檔案
1.Dump_eventlog.cmd  -->這支Scripts是把eventlog Dump出來共以全文字檔 txt來存檔

2.dumpel.exe -->這是一支工具程式,因為如果用windows內建的匯出eventlog功能,匯出來的後綴檔名是.evt,以文字編程工具打開來會是亂碼,一定要用windows的事件檢查器打來看才行,那就太煩人了,所以我們用這支程式加上上一支scripts就可以匯出後綴檔名為.txt的log檔,要查看就方便多了!

3.del_eventlog.vbs -->這支是用wsh編程編寫的scripts,功用是清空系統的eventlog記錄,有人要問了,我們不是要備份log嗎為什麼需要這支來刪除呀!
還記得剛才說的嗎?我們是要備份每天的系統Log檔,所以用排程排定在每天的午夜12:59備份系統Log後,就利用這支scripts清空系統裡舊的log,那樣我們每天備份的eventlog就會是完完整整的一整天,而不是好幾天混雜在一起的log備份!

二.代碼說明
接下來我就要解說代源的寫法囉

1.Dump_eventlog.cmd  

---------------------------------- 源代碼 ------------------------------------------------------------
@echo Off
mkdir %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%
@echo ******* start Backup Eventlog ******
dumpel -s 127.0.0.1 -l system -f %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%/system.log
dumpel -s 127.0.0.1 -l application -f %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%/application.log
dumpel -s 127.0.0.1 -l security -f %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%/security.log
@echo ******* Finish Backup Eventlog ******
star /min del_eventlog.vbs
---------------------------------------------------------------------------------------------------------
說明:
代碼不含上下二條虛線喔!第二行是我們要建立一個以日期為名稱的資料夾
因為windows的date抓取的日期變數會是2005/02/23 星期三"這樣的文字,其內的斜線(/)或減號(-)都是用做命令列的選項符號,這樣的組合可能會造成錯誤。
在此最簡單的方法便是用環境變數的擴充功能了,用%DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%,我們就可以抓取以2006-10-20這種格式的日期,4~6行則是利用dumpel 這支程式把 security 、application 、system 三項log記錄匯出來以txt檔備份到以當天日期命名的資料夾裡,ip我是用本機,請依照自己的需要改成你自己主機的ip,star /min del_eventlog.vbs這行則是在備份完之後清空系統的log記錄,原因,前面我們己經說過了!把上面的源碼copy並存成.bat或.cmd的檔名就可以了!


2.del_eventlog.vbs
-------------------------------------源代碼-----------------------------------------------------------
'刪除Evenlog
strComputer= "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Backup)}!\\" & _
strComputer & "\root\cimv2")
dim mylogs(3)
mylogs(1)="application"
mylogs(2)="system"
mylogs(3)="security"
for Each logs in mylogs
Set colLogFiles=objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile where LogFileName='"&logs&"'")
For Each objLogfile in colLogFiles
objLogFile.ClearEventLog()
Next
Next
---------------------------------------------------------------------------------------------------------
說明:
代碼不包含上下二條虛線喔!這支是清空系統eventlog的wsh編程 scripts,這裡就不多做介紹了,有興趣可以到微軟的腳本範例網站看看,上面有對wsh的做很多的介紹也有範例檔可下來研究!
http://www.microsoft.com/china/technet/community/scriptcenter/default.mspx

以上三支scripts我有提供我寫好的碼代碼在附件裡,大家可以玩看看,歡迎修改,
eventlog的備份也許有些人覺得沒什麼重要,但以筆者我,在管理大量主機時,尤其我又是管理線上遊戲服務器,對於系統異常狀況的掌控就是非常重要的了~

小田仔 2006/10/20

附件 1: Dump_Eventlog.rar (2006-10-21 05:52, 40.64 K, 下载附件所需积分 1 点 ,下载次数: 75)
2006-10-21 05:52
查看资料  发送邮件  发短消息 网志   编辑帖子
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 2 楼』:  

下载了还是要顶一下的。WMI强人啊




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2006-10-21 07:02
查看资料  发送邮件  发短消息 网志   编辑帖子
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 3 楼』:  


  下载了,谢了。。

  不过文章最好别写繁体的,看起来眼睛受不了, =_=


2006-10-21 07:09
查看资料  发送邮件  发短消息 网志   编辑帖子
boiu
初级用户





积分 25
发帖 10
注册 2006-9-12
状态 离线
『第 4 楼』:  

帮你转换下简体,要不看着太费眼了
--------------------------------------------------------
WINDOWS Eventlog每日备份Scripts脚本

前言:
在管理windows平台的服务器时,常常在系统发生问题或是服务器上运行的服务发生异常时,我们第一个一定是先打开"事件检查器"来查看Eventlog,查看是不是有异常的讯息产生,但是windows的log产生默认下是不会以日期来自动备份的,往往要找一个问题都要在一堆log里翻呀找呀,好不方便,如果能够每天在午夜12点59分整以全文字档备份每天的eventlog,那我们就可以在问题发生时,把我们要查找的eventlog以照日期调阅出来,方便又快速~以下小弟我就写了一个很小但又方便的dos scripts提供给大家参考罗!

一.实作:
首先scripts的组成有以下三个档案
1.Dump_eventlog.cmd  -->这支Scripts是把eventlog Dump出来共以全文字档 txt来存档

2.dumpel.exe -->这是一支工具程式,因为如果用windows内建的汇出eventlog功能,汇出来的後缀档名是.evt,以文字编程工具打开来会是乱码,一定要用windows的事件检查器打来看才行,那就太烦人了,所以我们用这支程式加上上一支scripts就可以汇出後缀档名为.txt的log档,要查看就方便多了!

3.del_eventlog.vbs -->这支是用wsh编程编写的scripts,功用是清空系统的eventlog记录,有人要问了,我们不是要备份log吗为什麽需要这支来删除呀!
还记得刚才说的吗?我们是要备份每天的系统Log档,所以用排程排定在每天的午夜12:59备份系统Log後,就利用这支scripts清空系统里旧的log,那样我们每天备份的eventlog就会是完完整整的一整天,而不是好几天混杂在一起的log备份!

二.代码说明
接下来我就要解说代源的写法罗

1.Dump_eventlog.cmd  

---------------------------------- 源代码 ------------------------------------------------------------
@echo Off
mkdir %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%
@echo ******* start Backup Eventlog ******
dumpel -s 127.0.0.1 -l system -f %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%/system.log
dumpel -s 127.0.0.1 -l application -f %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%/application.log
dumpel -s 127.0.0.1 -l security -f %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%/security.log
@echo ******* Finish Backup Eventlog ******
star /min del_eventlog.vbs
---------------------------------------------------------------------------------------------------------
说明:
代码不含上下二条虚线喔!第二行是我们要建立一个以日期为名称的资料夹
因为windows的date抓取的日期变数会是2005/02/23 星期三"这样的文字,其内的斜线(/)或减号(-)都是用做命令列的选项符号,这样的组合可能会造成错误。
在此最简单的方法便是用环境变数的扩充功能了,用%DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%,我们就可以抓取以2006-10-20这种格式的日期,4~6行则是利用dumpel 这支程式把 security 、application 、system 三项log记录汇出来以txt档备份到以当天日期命名的资料夹里,ip我是用本机,请依照自己的需要改成你自己主机的ip,star /min del_eventlog.vbs这行则是在备份完之後清空系统的log记录,原因,前面我们己经说过了!把上面的源码copy并存成.bat或.cmd的档名就可以了!


2.del_eventlog.vbs
-------------------------------------源代码-----------------------------------------------------------
'删除Evenlog
strComputer= "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Backup)}!\\" & _
strComputer & "\root\cimv2")
dim mylogs(3)
mylogs(1)="application"
mylogs(2)="system"
mylogs(3)="security"
for Each logs in mylogs
Set colLogFiles=objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile where LogFileName='"&logs&"'")
For Each objLogfile in colLogFiles
objLogFile.ClearEventLog()
Next
Next
---------------------------------------------------------------------------------------------------------
说明:
代码不包含上下二条虚线喔!这支是清空系统eventlog的wsh编程 scripts,这里就不多做介绍了,有兴趣可以到微软的脚本范例网站看看,上面有对wsh的做很多的介绍也有范例档可下来研究!
http://www.microsoft.com/china/t ... center/default.mspx

以上三支scripts我有提供我写好的码代码在附件里,大家可以玩看看,欢迎修改,
eventlog的备份也许有些人觉得没什麽重要,但以笔者我,在管理大量主机时,尤其我又是管理线上游戏服务器,对於系统异常状况的掌控就是非常重要的了~

小田仔 2006/10/20
------------------------------------------------

[ Last edited by boiu on 2006-10-21 at 07:19 ]

2006-10-21 07:18
查看资料  发短消息 网志   编辑帖子
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 5 楼』:  


  呵呵,多谢楼主这么人性化的“服务”...... ^_^


2006-10-21 07:26
查看资料  发送邮件  发短消息 网志   编辑帖子
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 6 楼』:  

原创或转贴,标题请注明.
关于用bat备份日志记录,本版有过讨论,参考链接:
关于wsh 脚本读取Log Event一问题.
额外地使用exe不是那么必要。

2006-10-21 07:30
查看资料  发送邮件  发短消息 网志   编辑帖子
ymtien
初级用户





积分 36
发帖 11
注册 2006-9-26
状态 离线
『第 7 楼』:  使用wsh匯出eventlog的差別

其实用一支wsh 脚本就可以把eventlog备份出来了,我会又配合使用
Windows Server Resource Kit 中 dumpel.exe这个工具是因为用wsh
脚本汇出的log记录是 .evt的档案,而不是全文字档,还必须要用事件检
查器才能打开,用文字编辑器打来会是乱码,为了方便查看,所以我用
dumpel.exe这个工具,来把log汇出成txt档,你提到的那支wsh,微软的网站
就有供提了!!谢谢

2006-10-21 08:24
查看资料  发送邮件  发短消息 网志   编辑帖子
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 8 楼』:  

wmi 高人

2006-10-21 22:49
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子
cslsy
新手上路





积分 2
发帖 1
注册 2007-8-22
状态 离线
『第 9 楼』:  哈哈



2007-8-22 19:27
查看资料  发送邮件  发短消息 网志   编辑帖子
gosien
新手上路





积分 3
发帖 1
注册 2007-8-22
状态 离线
『第 10 楼』:  求助!帮忙写个批处理!

哪位大虾帮帮忙,帮我写个批处理:
自动打开迅雷,自动下载一个任务,计算出下载的速度和时间.
用批处理怎么写啊?
急急55555555555555

2007-8-22 19:31
查看资料  发送邮件  发短消息 网志  OICQ (121929309)  编辑帖子
nngx
新手上路





积分 2
发帖 1
注册 2007-11-1
状态 离线
『第 11 楼』:  

太好了。正需要这个东东。

2007-11-1 14:30
查看资料  发送邮件  发短消息 网志   编辑帖子
lazzycat
新手上路





积分 2
发帖 1
注册 2008-2-22
状态 离线
『第 12 楼』:  

高人
太好了。正需要这个东东

2008-2-22 22:38
查看资料  发短消息 网志   编辑帖子
dripearth
新手上路





积分 1
发帖 2
注册 2007-8-29
状态 离线
『第 13 楼』:  

支持下

2008-5-21 12:16
查看资料  发送邮件  发短消息 网志   编辑帖子
bumboy
新手上路





积分 1
发帖 1
注册 2008-11-3
状态 离线
『第 14 楼』:  

正好用到!謝謝啦!

2008-11-3 18:39
查看资料  发送邮件  发短消息 网志   编辑帖子
amtf15
初级用户





积分 26
发帖 17
注册 2008-10-6
状态 离线
『第 15 楼』:  

能不能只是备份一天的log,不要删除服务器上的旧日志啊!
还有:我如果有很多服务器要采集到本地,这个脚本里面能不能填写别的服务器上的ip地址呢?(在有权限的情况下)

2008-12-1 17:18
查看资料  发送邮件  发短消息 网志   编辑帖子

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: