Linux系统运维脚本:编写bash脚本程序监控服务器的磁盘空间,在磁盘使用率超过阈值时发送警告邮件
创始人
2025-01-11 16:06:07
0

目              录

一、要求

二、解决方案

(一)解决思路

(二)方案

三、脚本程序实现

(一)脚本代码和解释

1、脚本代码

2、代码解释

(二)脚本验证

1、脚本编辑

2、给予执行权限

3、运行脚本,查看效果

四、扩展


一、要求

        在linux系统正常运行的过程中,一些应用程序会不断的产生日志和缓存等文件,这些数据一直会累加,占用硬盘空间。随着时间的推移,可能会占用大部分的磁盘空间,甚至占满。这样,可能导致业务程序运行出现异常、甚至导致有的业务程序停止运行。那么如何预防这种情况呢?

二、解决方案

(一)解决思路

        检测硬盘空间,可以采用df命令;然后通过shell命令,找到磁盘的空间占用率。发现空间快要满的时候,可以通过mail发出告警消息。通过这些命令,编一个bash的脚本文件,就可以实现需求。

(二)方案

       (1)通过ifconfig得到本机IP地址,或者hostname获取本机名称。

       (2)通过df、grep、awk等命令,获得硬盘的占有率

       (3)判断硬盘空间占用是否达到警戒线,比如80%

       (4)若超过80%,通过mail命令,发送email给维护人员。

三、脚本程序实现

        直接把脚本写出来,分享给大家。

(一)脚本代码和解释

1、脚本代码

        如下为编写的bash代码:

#!/bin/bash #monitor available disk space #提取本服务器的IP地址信息 IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "` SPACE=$(df -hP | grep '/$' | awk '{print int($5)}') if [ $SPACE -ge 80 ] then echo "$IP 服务器磁盘空间使率已经超过80%,请及时处理。"|mail -s "$IP 服务器硬盘告警" 124957736@qq.com fi echo "SPACE value: $SPACE" 

2、代码解释

        脚本的主要目的是监控服务器的磁盘空间使用情况,并在磁盘空间使用率超过80%时发送警告邮件。以下是脚本的详细解释:

(1)#!/bin/bash

        这用于指示系统使用哪个解释器来执行此脚本。在这里,它告诉系统使用/bin/bash来执行此脚本。

(2)IP=ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`

       这行命令用于获取eth0网络接口的IP地址。

       ifconfig eth0:显示eth0网络接口的配置信息。

       grep "inet addr":从ifconfig的输出中筛选出包含“inet addr”的行。

       cut -f 2 -d ":":以冒号:为分隔符,提取第二个字段,这通常是IP地址前的部分,如inet addr:192.168.1.100中的192.168.1.100。

       cut -f 1 -d " ":以空格为分隔符,提取第一个字段,即IP地址本身。

       最终,IP变量将包含eth0网络接口的IP地址。

(3)SPACE=$(df -hP | grep '/$' | awk '{print int($5)}')

       这行命令用于获取根分区的磁盘空间使用率。

       df -hP:显示磁盘空间的使用情况,-h参数表示以人类可读的格式显示,-P参数表示以POSIX格式显示。

       grep '/$':筛选出以/结尾的行,这通常是根分区的行。

       awk '{print int($5)}':使用awk工具从df的输出中提取第五列,即磁盘的使用率,并将其转换为整数。

       最终,SPACE变量将包含根分区的磁盘空间使用率(整数形式)。

(4)if [ $SPACE -ge 80 ]

       这是一个条件判断语句,检查SPACE变量的值是否大于或等于80。

(5)then

       如果上述条件为真(即磁盘使用率超过80%),则执行接下来的代码块。

(6)echo "$IP 服务器磁盘空间使率已经超过80%,请尽快及时处理。"|mail -s "$IP 服务器硬盘超过警戒告警" 124957736@qq.com

       这行命令发送一封警告邮件。邮件的内容包括服务器的IP地址和一条消息,指出服务器的磁盘空间使用率已经超过80%,需要及时处理。邮件的收件人是 124957736@qq.com,邮件的标题是$IP 服务器硬盘告警。

(7)fi

       结束if条件语句。

(8)echo "SPACE value: $SPACE"

       这行命令在终端上显示SPACE变量的值,即根分区的磁盘空间使用率。

(二)脚本验证

1、脚本编辑

        使用编辑器,比如vi,把代码输入进去;

        保存这个脚本到一个文件中,比check_space.sh

2、给予执行权限

      chmod +x w check_space.sh

3、运行脚本,查看效果

        可以运行这个脚本来检查进程的运行情况,如下:

[121yunwei@ecs-52a1 home]$ df Filesystem     1K-blocks     Used Available Use% Mounted on devtmpfs         3961580        0   3961580   0% /dev tmpfs            3976852        0   3976852   0% /dev/shm tmpfs            3976852   401964   3574888  11% /run tmpfs            3976852        0   3976852   0% /sys/fs/cgroup /dev/vda1      102948772 86067012  12251796  88% / tmpfs             795368        0    795368   0% /run/user/1003 [121yunwei@ecs-52a1 home]$ [121yunwei@ecs-52a1 home]$ [121yunwei@ecs-52a1 home]$ sh check_space.sh  服务器磁盘空间使率已经超过80%,请及时处理。 SPACE value: 88 [121yunwei@ecs-52a1 home]$  [121yunwei@ecs-52a1 home]$

四、扩展

        在实际使用中,系统硬盘可能有多个,你可能可以需要更改检测的硬盘,以及调整告警阈值,你可稍微做些修改,就可以适合您的应用了。比如,设对应的硬盘的空间阈值,并把80%的阈值改成90%,你可以更改如下两行命令即可:

SPACE=$(df -hP | grep '/run$' | awk '{print int($5)}')

 if [ $SPACE -ge 90 ]

相关内容

热门资讯

辅助举措!桃乐甘肃麻将辅助器,... 辅助举措!桃乐甘肃麻将辅助器,川南欢乐碰辅助,详细教程(有挂方法)1、在桃乐甘肃麻将辅助器插件功能辅...
了解大纲!火神微信辅助,新二号... 了解大纲!火神微信辅助,新二号辅助,详细教程(有挂助手)1、这是跨平台的火神微信辅助轻量版有透视,在...
推荐机巧!川娱竞技有挂透视脚本... 推荐机巧!川娱竞技有挂透视脚本,有没有人会衢州都莱的辅助,详细教程(有挂讲解)川娱竞技有挂透视脚本破...
详情教程书!潮友辅助插件,八仙... 详情教程书!潮友辅助插件,八仙游戏辅助,详细教程(发现有挂)1、不需要AI权限,帮助你快速的进行潮友...
辅助教材!乐胡脚本,麻辣竞技辅... 辅助教材!乐胡脚本,麻辣竞技辅助,详细教程(详细教程)1、让任何用户在无需麻辣竞技辅助安装教程第三方...
总结机巧!潮友会插件,wepo... 总结机巧!潮友会插件,wepoker开挂事件,详细教程(有挂总结)1、潮友会插件免费辅助多个强度级别...
专业妙计!边锋干瞪眼房租胡,顺... 专业妙计!边锋干瞪眼房租胡,顺欣茶楼有没有辅助,详细教程(证实有挂)暗藏猫腻,小编详细说明边锋干瞪眼...
关于教程书!微友助手app下载... 您好,微友助手app下载辅助器这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302...
教你模板!丽水都莱辅助软件,呗... 教你模板!丽水都莱辅助软件,呗兔辅助怎么样,详细教程(竟然有挂)丽水都莱辅助软件破解侠是真的助透视。...
解迷法门!天胡辅助脚本,欢乐达... 解迷法门!天胡辅助脚本,欢乐达人破解器,详细教程(有挂猫腻)1、超多福利:超高返利,海量正版游戏,欢...