前阵子服务器磁盘写满了,导致项目出了很多奇怪的问题,比如文件上传不了(这个很好理解),还有登录时验证码无法加载(现在依旧不知道原因,项目的验证码图片是只在内存中生成的BufferedImage对象,不知道为什么和磁盘有关)
于是趁今天有空,就给服务器加上了监听磁盘使用情况的脚本,在到达一定使用率后,会发出邮件提醒,告知研发或者运维去即时处理,避免不必要的麻烦。
找了一篇挺详细的博文做参考:
http://www.heminjie.com/system/linux/1923.html
主要是分以下几点:
1.查看系统磁盘的使用情况。
2.如果发现超过设定的阈值就发送邮件警告。
3.添加计划任务,定时查看磁盘使用情况。
首先针对第一点,查看磁盘使用情况命令大家可能都很熟:df -h。
这里的命令在这个命令增加了一些选项,以便直接抓取我们想要的信息。
df -h | awk 'NF>3&&NR>1{sub(/%/,"",$(NF-1));print $NF,$(NF-1)}'
关于awk的用法可以参考:linux awk命令详解
然后我们需要考虑的是如何通过邮件提醒我们,资料里采用了sendEmail命令
关于sendEmail命令详细的用法可以参考:shell下发送邮件工具sendEmail的用法详解
最后我们再为我们的脚本添加计划任务,监听磁盘使用情况的功能就实现了。