该问题分为两个步骤来考虑,一是如何监测磁盘容量;二是如何自动邮件报警。
第一个问题有两种解决方法,一是利用命令行下的wmic命令来写一个bat脚本;二是利用windows自带的性能监控。第一种方法比较麻烦,这里采用了第二种方法。
这样,总的详细步骤如下:
第一步 启用“性能”功能
在服务器中,点击“开始→运行”,在“运行”对话框中输入“perfmon.msc”命令后回车,弹出“性能”管理主窗口。接着依次展开“性能日志和警报 → 警报”选项,下面就可以利用“新建警报设置”来监控服务器空间的剩余数量,当服务器剩余空间低于某个数值时,就向管理员报警,提示空间 不足的警告信息。
第二步 新建警告设置
接下来要新建一个警报设置,用来监控磁盘空间剩余量。
在“性能”管理主窗口中,右键点击“警报”选项,在弹出的菜单中选择“新建警报设置”选项,弹出新建警报设置对话框,在“名称”栏中为该警报起个名称,如“Diskfree”,点击“确定”按钮后,进入到警报参数设置对话框。
第三步 警报参数设置
1. 添加计数器
在警报参数设置对话框中,点击“添加”按钮,弹出“添加计数器”对话框,接着在“性能对象”下拉列表框中选中“LogicalDisk”选项。
下面选中“从列表选中计数器”选项,接着在列表框中选中“%Free Space”,再选中要监控的盘符,如“C:”,最后点击“添加”按钮。 (注意,监控多个盘要分别添加警报;监控整个磁盘容量就选择“_Total”)
2. 警告参数和采样间隔
然后回到警报参数设置对话框中,接下来要设置触发警告参数和数据采样间隔参数。这里要设置为剩余磁盘空间低于15%后,就向管理员发出警报。在“将触发警报,如果值是”下拉框中选择“低于”选项,在“限制”栏中输入“15”。 接着设置数据采样间隔值,这个间隔时间不要设置的过短,如设置为“5分钟”,在“间隔”栏中输入“5”,“单位”栏中选择“分钟”。
3. 指定警告操作
最后还要切换到“操作”标签页,在“当触发警报时”框体中选中“执行这个程序”选项,单击“浏览”,选择“邮件警告.bat”
附上“邮件警告.bat”示例:
[html]
@echo off
echo 磁盘已满,请及时清理!!!服务器地址为: > c:mail_body.txt
ipconfig | find "IP Address" >> c:mail_body.txt
:::::::::::::: 参数设置:::::::::::::
set user=test
set pass=11111
set subj="Disk Full Alarm!"
set mail=c:mail_body.txt
set server=smtp.qq.com
set debug=-debug -log c:blat.log -timestamp
::::::::::::::::: 运行blat :::::::::::::::::
blat %mail% -to %to% -base64 -charset Gb2312 -subject %subj% -server %server% -f %from% -u %user% -pw %pass% %debug%
邮件报警截图: