Table of Contents
测试磁盘使用情况的脚本" >测试磁盘使用情况的脚本
监控脚本说明" >监控脚本说明
监控脚本执行" >监控脚本执行
自动化监控过程" >自动化监控过程
Home System Tutorial LINUX Linux - Shell script for automatically monitoring disk usage

Linux - Shell script for automatically monitoring disk usage

Feb 14, 2024 pm 10:18 PM
linux linux tutorial linux system linux command shell script System installation embeddedlinux Getting started with linux linux learning

如果您在服务器上运行关键任务,那么监控磁盘使用情况并在达到阈值时通知管理员是非常重要的。本文将介绍如何编写一个脚本来自动监控磁盘使用情况,并在达到阈值时将报告发送到您的邮箱。

在本文中,我们将编写一个 shell 脚本,在 crontab 中指定固定时间间隔监控磁盘使用情况,并在报告达到指定阈值时通过电子邮件发送报告。

首先,需要确保系统安装了 mail 命令和 postfix 发送邮件服务。下面是在 Centos8 中安装这些工具的命令:

[root@localhost ~]# yum -y install mailx postfix
[root@localhost ~]# systemctl enable --now postfix
Copy after login

下面使用mail命令发送邮件测试:

[root@localhost ~]# echo "This message will go into the body of the mail." | mail -s "Testing from the server." root@localhos
Copy after login
Linux —— 用于自动监控磁盘使用情况的 Shell 脚本

本文不讲解如何配置smtp服务。

测试磁盘使用情况的脚本

以下是测试磁盘使用情况并将报告发送到指定邮箱的脚本。脚本的解释在代码片段之后给出。

[root@localhost ~]# vim  disk-monitor.sh
#!/bin/bash

MAILID="admin@linuxprobe.com"

VALUE=80

SERVERNAME=$(hostname)

MAIL=/bin/mail

for line in $(df -hP | egrep '^/dev/' | awk '{ print $1 "_:_" $5 }')
  do
    FILESYSTEM=$(echo "$line" | awk -F"_:_" '{ print $1 }')
    DISK_USAGE=$(echo "$line" | awk -F"_:_" '{ print $2 }' | cut -d'%' -f1 )

    if [ $DISK_USAGE -ge $VALUE ];
    then
      EMAIL="$SERVERNAME - $(date): $FILESYSTEM Exceeded the threshold VALUE\n"
      EMAIL="$EMAIL\n Usage Details\n Current Usage:($DISK_USAGE%) Threshold value: ($VALUE%)"
      echo -e "$EMAIL" | $MAIL -s ""$SERVERNAME" Disk Usage Alert: Needs Attention!" "$MAILID"
    elif [ $DISK_USAGE -lt $VALUE ];
    then
      EMAIL="$EMAIL\n$FILESYSTEM ($DISK_USAGE%) is lessthan the threshold ($VALUE%)"
      EMAIL="$EMAIL\n"
      echo -e "$EMAIL" | $MAIL -s ""$SERVERNAME" Disk Usage Alert: Threshold Not Reached" "$MAILID"
  fi
done
Copy after login

监控脚本说明

上述脚本使用df -hP命令获取内存信息。

环境变量MAILID保存必须在其中发送报告的邮箱地址。

VALUE 保存要设置的阈值。

SERVERNAME 保存服务器的主机名,用于电子邮件通知中的服务器标识。

使用 for 循环,它将遍历所有具有“/dev”挂载点的文件系统。然后它将文件系统名称和磁盘使用百分比保存到两个变量FILESYSTEMDISK_USAGE

使用上述变量,磁盘使用量等于阈值 VALUE 变量。根据结果,将向指定的邮箱发送一封电子邮件。

监控脚本执行

下面需要修改一下disk-monitor.sh脚本的权限,为它添加可执行权限:

[root@localhost ~]# chmod +x disk-monitor.s
Copy after login

使用下面方式运行脚本:

[root@localhost ~]# ./disk-monitor.s
Copy after login

自动化监控过程

手动运行脚本没有任何意义,因为我们希望自动运行该过程。自动运行该过程的最佳方法是将脚本添加到 crontab配置文件中。

使用下面方式打开crontab:

[root@localhost ~]# crontab -
Copy after login

将下面内容添加到配置文件中:

*/5 * * * * sh /home/ec2-user/disk-monitor.sh
Copy after login
Linux —— 用于自动监控磁盘使用情况的 Shell 脚本

The above is the detailed content of Linux - Shell script for automatically monitoring disk usage. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

deepseek web version entrance deepseek official website entrance deepseek web version entrance deepseek official website entrance Feb 19, 2025 pm 04:54 PM

deepseek web version entrance deepseek official website entrance

Android TV Box gets unofficial Ubuntu 24.04 upgrade Android TV Box gets unofficial Ubuntu 24.04 upgrade Sep 05, 2024 am 06:33 AM

Android TV Box gets unofficial Ubuntu 24.04 upgrade

How to install deepseek How to install deepseek Feb 19, 2025 pm 05:48 PM

How to install deepseek

BitPie Bitpie wallet app download address BitPie Bitpie wallet app download address Sep 10, 2024 pm 12:10 PM

BitPie Bitpie wallet app download address

BITGet official website installation (2025 beginner's guide) BITGet official website installation (2025 beginner's guide) Feb 21, 2025 pm 08:42 PM

BITGet official website installation (2025 beginner's guide)

Zabbix 3.4 Source code compilation installation Zabbix 3.4 Source code compilation installation Sep 04, 2024 am 07:32 AM

Zabbix 3.4 Source code compilation installation

Detailed explanation: Shell script variable judgment parameter command Detailed explanation: Shell script variable judgment parameter command Sep 02, 2024 pm 03:25 PM

Detailed explanation: Shell script variable judgment parameter command

Ouyi okx installation package is directly included Ouyi okx installation package is directly included Feb 21, 2025 pm 08:00 PM

Ouyi okx installation package is directly included

See all articles