(转)Linux磁盘空间监控告警

Linux磁盘空间监控告警

原文:http://www.cnblogs.com/kerrycode/p/3415242.html

Linux系统中需要监控磁盘各分区的使用情况,避免由于各种突发情况,造成磁盘空间被消耗殆尽的情况,例如某个分区被Oracle的归档日志耗尽,导致后续的日志文件无法归档,这时ORACLE数据库就会出现错误。监控磁盘空间的使用情况,其实有许多工具,例如Nagios等,其实最简单的还是使用Shell脚本。下面就介绍一下如何通过Shell脚本和Crontab作业结合来实现对磁盘空间的监控、告警。

一般查看磁盘各分区的使用情况可以通过df命令来查看,网上有两种获取磁盘使用百分比的Shell脚本。

1:df -h | grep /dev | awk ‘{print $5}‘ | cut -f 1 -d "%"

2:df -h | grep /dev | awk ‘{print $5}‘ | sed ‘s/%//g‘

但是这两个命令还是有些bug,例如如下截图所示:当显示内容过长,导致换行时。此时上面的Shell脚本就无法获取其值。

尤其是某些特殊情况下,完全无法准确获取相应数据

此时只需在参数上稍微做一下调整即可

1:df -P | grep /dev | awk ‘{print $5}‘ | cut -f 1 -d "%"

2:df -P | grep /dev | awk ‘{print $5}‘ | sed ‘s/%//g‘

下面脚本是用来监控各分区使用情况,当超过阀值(默认为90%)时,发出告警邮件,通知管理员及时处理。

#*************************************************************************
#  FileName     :               disk_capatiy_alarm.sh
#*************************************************************************
#  Author       :               Kerry
#  CreateDate   :               2013-11-07
#  Description  :               this script is mointoring the linux disk
#                               capacity, if disk used more than 90%,
#                               then it will send a alarm email
#*************************************************************************

#! /bin/bash

email_content="/home/oracle/scripts/output/disk_sendmail.pl"
email_logfile="/home/oracle/scripts/output/diskdetail.txt";

cat /dev/null > ${email_content};
cat /dev/null > ${email_logfile};

SendMail()
{

date_today=`date +%Y_%m_%d`
subject="The server xxxxxx\‘s Disk Capacity Alarm"
content="Dear All,

   The server xxxx(xxx.xxx.xxx.xxx) disk capacity alarm ,please  take action for it. many thanks!

"

echo "#!/usr/bin/perl" >> ${email_content}
echo "use Mail::Sender;" >> ${email_content}
echo "\$sender = new Mail::Sender {smtp => ‘xxx.xxx.xxx.xxx‘, from => ‘[email protected]‘}; ">> ${email_content}
echo "\$sender->MailFile({to => ‘[email protected]‘,">> ${email_content}
echo "cc=>‘[email protected]‘," >> ${email_content}
echo "subject => ‘$subject‘,">> ${email_content}
echo "msg => ‘$content‘,">> ${email_content}
echo "file => ‘${email_logfile}‘});">> ${email_content}

perl ${email_content}

}

for d in `df -P | grep /dev | awk ‘{print $5}‘ | sed ‘s/%//g‘` 

 do

    if [ $d -gt 90 ]; then

           df -h >>$email_logfile;

           SendMail;

             exit 0;

    fi

done

时间: 2024-10-29 19:07:29

(转)Linux磁盘空间监控告警的相关文章

Linux磁盘IO监控[zz]

磁盘 I/O 监控是 Unix/Linux 系统管理中一个非常重要的组成部分.它可以监控吞吐量.每秒 I/O 数.磁盘利用率.服务时间等信息,并且在发现异常时,发送告警信息给系统管理员,便于系统管理员进行调整数据布局等管理活动以达到优化系统总体性能的目的. 不同的操作系统监控磁盘 I/O 的命令可能略有不同.本文将介绍 Unix/Linux 操作系统磁盘 I/O 管理命令及相关信息,并讲述 Unix/Linux 操作系统上磁盘 I/O 管理监控的自动化脚本实现. Unix/Linux 磁盘 I/

Linux磁盘空间被未知资源耗尽【转】

Linux磁盘空间被未知资源耗尽 在linux中,当我们使用rm在linux上删除了大文件,但是如果有进程打开了这个大文件,却没有关闭这个文件的句柄,那么linux内核还是不会释放这个文件的磁盘空间,最后造成磁盘空间占用100%,整个系统无法正常运行.这种情况下,通过df和du命令查找的磁盘空间,两者是无法匹配的,可能df显示磁盘100%,而du查找目录的磁盘容量占用却很小. 遇到这种情况,基本可以断定是某些大文件被某些程序占用了,并且这些大文件已经被删除了,但是对应的文件句柄没有被某些程序关闭

linux磁盘空间使用问题

linux磁盘空间用满的处理方法 linux下空间满可能有两种情况 可以通过命令 df -h  查看磁盘空间占用,实际上是查看磁盘块占用的文件(block) df -i  查看索引节点的占用(Inodes) 磁盘块和索引节点其中之一满,都会导致无法创建文件,提示磁盘空间已满. 所以请注意,查看磁盘还有空间,但是创建文件提示空间满,可能是inodes节点已满 通过命令:find / -size +100M |xargs ls -lh 列出系统内大于100M的文件 du -h --max-depth

Linux 磁盘空间大小统计du命令常见用法

在 Linux下,可以对某个文件或文件夹所占空间大小进行统计,这里将一些常用用法汇总如下: 1.对指定文件或文件夹进行统计,缺省单位为kbyte(k或千字节),下例对文件夹testa进行统计: [[email protected] ~]$ du -s testa 1589308    testa 2.对文件夹统计的正确做法,如果想知道某个文件夹所占空间的大小,用什么命令?直接用du可以吗? 可以是可以,但是,它会将该文件夹底下所有目录都统计一遍,显然,这不是我们想要的.正确的做法是使用 -s操作

window 环境下vb   磁盘空间监控脚本!

Set objFSO = CreateObject ("Scripting.FileSystemObject") Set colDrives = objFSO.Drives Dim msg For Each objDrive in colDrives If objDrive.IsReady and  objDrive.DriveLetter ="D" and  int(objDrive.FreeSpace/(1024*1024*1024))<=400 Then

查看Linux磁盘空间大小

一.df 命令: df 是来自于coreutils 软件包,系统安装时,就自带的:我们通过这个命令可以查看磁盘的使用情况以及文件系统被挂载的位置: 举例: [[email protected] beinan]# df -lh Filesystem 容量 已用 可用 已用% 挂载点 /dev/hda8 11G 6.0G 4.4G 58% / /dev/shm 236M 0 236M 0% /dev/shm /dev/sda1 56G 22G 35G 39% /mnt/sda1 我们从中可以看到,系

Linux 磁盘空间调整

环境:OS: Red Hat Enterprise Linux Server release 6.5 (Santiago) 准备阶段 1.记录当前卷名称.大小 [root@cdhslave5 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-LogVol01 50G 41G 6.3G 87% / tmpfs 16G 0 16G 0% /dev/shm /dev/xvda1 194M 30M 155M

工作小记-Linux磁盘空间告警

环境介绍:Centos 6.3运行在ESXi 5.5中 分了两块虚拟磁盘,一块大小为IDE 20G,另外一块为SCSI 73G. lsb_release -a查看版本为CentOS release 6.3(Final) 这套环境是之前的人员部署的,里面跑的是unison同步SVN版本的服务,从一台windows server 2012 R2同步过来. 查看了挂载到根分区的磁盘/dev/sda2大小15G,100% use,第一块磁盘分区为/dev/sda1 --> /boot /dev/sda2

Linx监控分享--磁盘空间监控+邮件提醒

分享第一个监控脚本,挂载点磁盘空间使用监控:如果使用空间达到了75%则开始报警,发送告警邮件. 在手机上安装网易的邮件客户端,就可以达到实时提醒的效果. 关于mail的配置,见之前的文章:http://blog.csdn.net/rookie_ceo/article/details/46559195 #!/bin/sh source /etc/profile IP=`/sbin/ifconfig|sed -n '/inet addr/s/^[^:]*:\([0-9.]\{7,15\}\) .*/