Linux下监控磁盘使用量并在超过阀值后自动发送报警邮件
参考博客: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下监控磁盘使用量并在超过阀值后自动发送报警邮件相关推荐
- linux下监控磁盘空间脚本
Linux下监控磁盘的空闲空间的shell脚本,对于系统管理员或DBA来说,必不可少.下面是给出的一个监控磁盘空间空间shell脚本的样本. robin@SZDB:~/dba_scripts/cust ...
- Linux下监控磁盘io,如何在Linux下监控磁盘IO?
[51CTO.com快译]iostat用于获取存储设备和分区的I/O统计信息.iostat是sysstat软件包的一部分.使用iostat,你可以监控存储设备(比如硬驱和SSD)以及分区(磁盘分区)的 ...
- linux u盘插入事件,Linux 下监控USB设备拔插事件
Linux 下监控USB设备拔插事件 发布时间:2018-01-29 00:00, 浏览次数:1111 , 标签: Linux USB * 使用Netlink来实现 这是一个特殊的socket,可以接 ...
- linux下测试磁盘的读写IO速度-简易方法
linux下测试磁盘的读写IO速度-简易方法 参考资料: https://blog.csdn.net/zqtsx/article/details/25487185 一:使用hdparm命令 这是一个是 ...
- Linux下监控文件系统
Linux下监控文件系统 Linux的后台程序通常在机器没有问题的情况下,需要长期运行(比如说数个月,甚至是数年).但是,程序的配置文件有时候是需要定期作调整.为了不影响程序对外服务(不重启),动态加 ...
- Linux下查看磁盘挂载的三种方法
Linux下查看磁盘挂载的三种方法 2009-06-05 23:17 好久没有更新日志了,呵呵.不是没有要写的东东.实在抽不出时间来写,要准备公司的考试呢,C++考试.已经有七个月没有写C++代码了, ...
- linux lvm添加磁盘,Linux下添加磁盘创建lvm分区
shell> fdisk /dev/xvdb #### 选择磁盘 Command (m for help): m #### 帮助 Command action a toggle a bootab ...
- (原创)Linux下的磁盘碎片整理(2)
作者:h2appy 转载请注明出处. 一.Linux下是否需要磁盘碎片整理 首先要说的是,我们下面要讨论的文件系统一定会产生磁盘碎片. 只是由于策略不同,产生的碎片多少不同而已.比如ext3通过预留空 ...
- linux下的磁盘配额简介暨 linux下加挂硬盘续
linux下的磁盘配额简介暨 linux下加挂硬盘续 实验环境 VMware 6.5.2 +redhat Enterprise 5 as 以上是内核版本,还有方便起见加挂一块硬盘 这只是我的环境 实验 ...
最新文章
- LeetCode Regular Expression Matching(.和*通配符匹配)
- Spring源码学习的初步体会
- wireshark远程抓包
- python迭代算法_Python实现简单的梯度下降法
- 百度区块链所遇到的问题及处理汇总
- 承包你所有壁纸需求,高图网图片,美到窒息
- 毕业五年同是程序员为什么差距这么大?他年薪百万,他月薪一万
- 识别连笔字的软件_司捷分件著录软件下载-司捷分件著录软件最新版下载[文件分件]...
- 保存好用的工具---转载
- 二十五、JAVA多线程(五、线程生命周期)
- maven教程一:快速搭建
- html网页中加载pdf,在HTML页面中嵌入本地PDF
- 1. Xamarin开发入门
- python避障小车_基于树莓派的超声波避障小车
- 联想g510升级换什么cpu好_联想G510笔记本完全拆机指南(图解)
- C++ stander library--type traits and type utility
- 61家公司入选“2021年大中华区最佳职场”榜单;针对“奥密克戎”!云顶新耀与加拿大生物技术公司研发新型疫苗 | 美通社头条...
- Flutter Sliver系列组件入门
- 精神小伙python小白用python可视化分析青春有你2小姐姐有关数据
- 斐讯c 语言面试题,斐讯面试记录—三线程交替打印ABC
热门文章
- mysql中数据表null什么意思_MySQL 中NULL和空值的区别是什么?
- java+springboot+mysql个人理财管理系统
- Linux之shell注释
- linux 安装 openvpn
- 数据可视化 - 柱状图 - xy轴自定义名称
- Bluetooth设备之间如何建立连接
- ContextSwitchDeadlock 以及 DisconnectedContext
- Unknown column ‘xxx‘ in ‘field list‘
- 项目5 判断点是否在圆内
- MySQL之——MySQL5.6 my.cnf 参数说明(附上自己服务器上真实配置文件)