Windows- 磁盘空间不足预警

1 背景

长春捷翼上线阶段,现场生产环境宕机事件频发。其中一次就是因为服务器磁盘空间不足,导致服务宕机。磁盘空间的增长是不可避免的,如果是数据库服务器,数据文件会不断增加,数据文件的备份和日志也会占用磁盘空间,同理 MES 服务也会有各种日志的记录和备份占用磁盘空间。服务宕机是非常严重的事故,必须要对服务器的磁盘空间进行监控,及时对文件进行清理或者对磁盘扩容,从而避免因磁盘空间不足导致宕机的情况

2 磁盘空间不足预警的实现

使用 windows 自带的任务计划程序和性能监视器,监控磁盘大小,然后以发送邮件的形式发出警报

2.1 windows 性能监视器和任务计划程序

参考 https://blog.csdn.net/qq_17058993/article/details/84871374

性能监视器和任务计划程序配置起来比较简单,按照参考文章配置即可

2.2 设定发送邮件的脚本,使用命令行发送邮件

邮件发送程序采用 SmtpMailSender,优点是比较轻便,安装后即可使用,而且配置简单,还自带生成日志的功能

2.2.1.SmtpMailSender 安装使用

参考 https://blog.csdn.net/qq_17058993/article/details/84869471

PS1:配置 SmtpMailSender 的发件人邮箱时,如果使用企业邮箱 /QQ 邮箱(其他邮箱未尝试),要去设置里把 smtp 权限打开,密码填写授权码

公司 smtp 邮件发送配置:
Server: smtp.exmail.qq.com
Username: info.project@epichust.com
Password: D8EQJKEz2eJTVyC8

PS2:第一次打开 SmtpMailSender 会有配置页,后面再打开不会进入配置页
20181207093307102.png
配置完以后,会在同级目录下创建 config.conf。如果想重新配置,将文件删掉再重新打开 SmtpMailSender 即可
20181207094809471.png
发送邮件以后,会在同级目录下生成日志 smtpsend.log,记录邮件发送情况

PS3:捷翼服务器上打开 SmtpMailSender,显示需要.net framework3.5, 无法下载更新。有的系统安装的时候自带的是 .net framework 更高版本,比如 4.8 版本
解决方法:
需要在“控制面板”中的“程序和功能”中找到.net framework3.5 进行获取更新
截图.png

更新报错的话:
打开注册表:cmd+r 输入 regedit,确定;
找到路径 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU,其中 UseWUServer 默认值为 1,改成 0;
打开服务列表,重启 Windows Update 服务;
此时可以正常在功能中通过 windows 更新安装 .net framework 3.5;
将第二步的修改还原,并重启 Windows Update 服务

2.2.2 邮件发送脚本

SmtpMailSender.exe -f 1104350993@qq.com -t yan.zhang@epichust.com -s “邮件标题” -b “邮件内容” -send

-f 后面为发件人邮箱
-t 后面为收件人邮箱,可以用 "," 拼接,发送给多个收件人
-send 执行发送命令

注意:转换成 bat 时,编码格式需使用 ANSII 码,不然邮件内容会乱码

3 最终结果

磁盘空间邮件展示.png
磁盘空间-配置1.png
磁盘空间-配置2.png

Windows- 磁盘空间不足预警.pdf