参考博客: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. LeetCode Regular Expression Matching(.和*通配符匹配)
  2. Spring源码学习的初步体会
  3. wireshark远程抓包
  4. python迭代算法_Python实现简单的梯度下降法
  5. 百度区块链所遇到的问题及处理汇总
  6. 承包你所有壁纸需求,高图网图片,美到窒息
  7. 毕业五年同是程序员为什么差距这么大?他年薪百万,他月薪一万
  8. 识别连笔字的软件_司捷分件著录软件下载-司捷分件著录软件最新版下载[文件分件]...
  9. 保存好用的工具---转载
  10. 二十五、JAVA多线程(五、线程生命周期)
  11. maven教程一:快速搭建
  12. html网页中加载pdf,在HTML页面中嵌入本地PDF
  13. 1. Xamarin开发入门
  14. python避障小车_基于树莓派的超声波避障小车
  15. 联想g510升级换什么cpu好_联想G510笔记本完全拆机指南(图解)
  16. C++ stander library--type traits and type utility
  17. 61家公司入选“2021年大中华区最佳职场”榜单;针对“奥密克戎”!云顶新耀与加拿大生物技术公司研发新型疫苗 | 美通社头条...
  18. Flutter Sliver系列组件入门
  19. 精神小伙python小白用python可视化分析青春有你2小姐姐有关数据
  20. 斐讯c 语言面试题,斐讯面试记录—三线程交替打印ABC

热门文章

  1. mysql中数据表null什么意思_MySQL 中NULL和空值的区别是什么?
  2. java+springboot+mysql个人理财管理系统
  3. Linux之shell注释
  4. linux 安装 openvpn
  5. 数据可视化 - 柱状图 - xy轴自定义名称
  6. Bluetooth设备之间如何建立连接
  7. ContextSwitchDeadlock 以及 DisconnectedContext
  8. Unknown column ‘xxx‘ in ‘field list‘
  9. 项目5 判断点是否在圆内
  10. MySQL之——MySQL5.6 my.cnf 参数说明(附上自己服务器上真实配置文件)