参考博客:http://www.heminjie.com/system/linux/1923.html

最近Linux服务器磁盘使用量经常到100%,直到影响到正常服务出现故障才会去注意,做不到防患于未然,今天在网上搜集了资料,加上自己修改,写了一个shell脚本用于实时监控磁盘使用量并在超过阀值后自动发送报警邮件。
 
脚本简单说明:用df命令查看磁盘使用量信息,超过脚本设置的阀值(critical=90)90%,就会自动用sendEmail命令发送报警邮件(邮件smtp、email等需自行修改成真实存在的)。
 
1、首先下载监测脚本(点击下载)或直接复制下面脚本代码存为disk_check.sh文件

#!/bin/bash
partition_list=(`df -h | awk 'NF>3&&NR>1{sub(/%/,"",$(NF-1));print $NF,$(NF-1)}'`)
critical=90
notification_email()
{emailuser='user@domain.com'emailpasswd='password'emailsmtp='smtp.domain.com'sendto='user1@domain.com'title='Disk Space Alarm'/opt/sendEmail-v1.56/sendEmail -f $emailuser -t $sendto -s $emailsmtp -u $title -xu $emailuser -xp $emailpasswd
}
crit_info=""
for (( i=0;i<${#partition_list[@]};i+=2 ))
doif [ "${partition_list[((i+1))]}" -lt "$critical" ];thenecho "OK! ${partition_list[i]} used ${partition_list[((i+1))]}%"else        if [ "${partition_list[((i+1))]}" -gt "$critical" ];thencrit_info=$crit_info"Warning!!! ${partition_list[i]} used ${partition_list[((i+1))]}%\n"fi fi
done
if [ "$crit_info" != "" ];thenecho -e $crit_info | notification_email
fi

2、上传disk_check.sh文件到linux服务器的/opt目录下
 
3、给disk_check.sh添加可执行权限

[root@localhost /]# chmod 755 /opt/disk_check.sh

4、下载sendEmail邮件程序命令(点击下载),上传到服务器的/opt目录下
 
5、解压/opt/sendEmail-v1.56.tar.gz

[root@localhost /]# tar xvf /opt/sendEmail-v1.56.tar.gz

6、测试脚本/报警邮件是否运行正常,可以看到,有2个分区是正常的,显示OK!,没有超过设置的阀值,有一个分区使用量超过阀值了,并自动成功发送了报警邮件,再去我设置的收件邮箱,可以看到已经收到了这封报警邮件:

[root@localhost /]# sh /opt/disk_check.sh
OK! /dev/shm used 1%
OK! /boot used 12%
Reading message body from STDIN because the '-m' option was not used.
If you are manually typing in a message:- First line must be received within 60 seconds.- End manual input with a CTRL-D on its own line.
Jul 01 17:32:44 localhost sendEmail[5585]: Message input complete.
Jul 01 17:32:44 localhost sendEmail[5585]: Email was sent successfully!


7、最后,可以设置一个cron计划任务,让该脚本每隔1小时运行一次

[root@webmail /]# crontab -e

在cron里添加下面一行即可

*/60 * * * * /opt/disk_check.sh

Linux下监控磁盘使用量并在超过阀值后自动发送报警邮件相关推荐

  1. linux下监控磁盘空间脚本

    Linux下监控磁盘的空闲空间的shell脚本,对于系统管理员或DBA来说,必不可少.下面是给出的一个监控磁盘空间空间shell脚本的样本. robin@SZDB:~/dba_scripts/cust ...

  2. Linux下监控磁盘io,如何在Linux下监控磁盘IO?

    [51CTO.com快译]iostat用于获取存储设备和分区的I/O统计信息.iostat是sysstat软件包的一部分.使用iostat,你可以监控存储设备(比如硬驱和SSD)以及分区(磁盘分区)的 ...

  3. linux u盘插入事件,Linux 下监控USB设备拔插事件

    Linux 下监控USB设备拔插事件 发布时间:2018-01-29 00:00, 浏览次数:1111 , 标签: Linux USB * 使用Netlink来实现 这是一个特殊的socket,可以接 ...

  4. linux下测试磁盘的读写IO速度-简易方法

    linux下测试磁盘的读写IO速度-简易方法 参考资料: https://blog.csdn.net/zqtsx/article/details/25487185 一:使用hdparm命令 这是一个是 ...

  5. Linux下监控文件系统

    Linux下监控文件系统 Linux的后台程序通常在机器没有问题的情况下,需要长期运行(比如说数个月,甚至是数年).但是,程序的配置文件有时候是需要定期作调整.为了不影响程序对外服务(不重启),动态加 ...

  6. Linux下查看磁盘挂载的三种方法

    Linux下查看磁盘挂载的三种方法 2009-06-05 23:17 好久没有更新日志了,呵呵.不是没有要写的东东.实在抽不出时间来写,要准备公司的考试呢,C++考试.已经有七个月没有写C++代码了, ...

  7. linux lvm添加磁盘,Linux下添加磁盘创建lvm分区

    shell> fdisk /dev/xvdb #### 选择磁盘 Command (m for help): m #### 帮助 Command action a toggle a bootab ...

  8. (原创)Linux下的磁盘碎片整理(2)

    作者:h2appy 转载请注明出处. 一.Linux下是否需要磁盘碎片整理 首先要说的是,我们下面要讨论的文件系统一定会产生磁盘碎片. 只是由于策略不同,产生的碎片多少不同而已.比如ext3通过预留空 ...

  9. linux下的磁盘配额简介暨 linux下加挂硬盘续

    linux下的磁盘配额简介暨 linux下加挂硬盘续 实验环境 VMware 6.5.2 +redhat Enterprise 5 as 以上是内核版本,还有方便起见加挂一块硬盘 这只是我的环境 实验 ...

最新文章

  1. Cross-validation
  2. PyTorch关键算法疑似侵权,Facebook被起诉
  3. 清华大学范玉顺互联网与大数据_清华大学范玉顺:大数据、人工智能与工业互联网...
  4. 再谈 Devstack(Rocky)
  5. java使用Redis4--主从复制
  6. 常见的几种最优化方法
  7. U-Boot之代码调试
  8. 机器学习与R语言(原书第2版)》一1.4 实践中的机器学习
  9. 跟我一起学QT11:Address Book的编写
  10. “鬼才”论文致谢刷屏!感谢我导“似导非导”的指导……
  11. NEC学习 ---- 布局 -两列, 右侧定宽,左侧自适应
  12. 分贝测试软件哪个好 家庭影院,家庭影院5.1和7.1哪种好?5.1和7.1家庭影院区别...
  13. smali语法基础详解
  14. BPMS的市场与产品
  15. OSS对象存储命令管理、数据迁移
  16. SMS短信的编码规则
  17. matlab寻峰代码,寻峰的函数!! - 程序语言 - MATLAB/Mathematica - 小木虫论坛-学术科研互动平台...
  18. 前缀、中缀、后缀表达式
  19. Mac air苹果笔记本安装Win10双系统教程(绝对能成功,超详细!)[转]
  20. 听说你觉得自己上了大学就长大懂事了...

热门文章

  1. 2021年焊工(技师)考试题库及焊工(技师)最新解析
  2. 游戏建模师终于出手,“疯狂”让老板加薪
  3. 解读艾略特波浪理论中的自然法则
  4. CiteSpace学习笔记
  5. python3编写http代理服务器_HTTP代理服务器[Python]
  6. linux 谷歌浏览器设置代理_浏览器自带代理服务器配置脚本
  7. java(十)【属性集,缓冲流、转换流、序列化流】
  8. 网站绑定域名后不能用IP直接访问了?
  9. 【自动驾驶】自动驾驶涉及的知识概览
  10. css中单位px、pt、em和rem的区别