Heim > System-Tutorial > LINUX > Hauptteil

Linux – Shell-Skript zur automatischen Überwachung der Festplattennutzung

PHPz
Freigeben: 2024-02-14 22:18:03
nach vorne
651 Leute haben es durchsucht

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

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

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

[root@localhost ~]# yum -y install mailx postfix
[root@localhost ~]# systemctl enable --now postfix
Nach dem Login kopieren

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

[root@localhost ~]# echo "This message will go into the body of the mail." | mail -s "Testing from the server." root@localhos
Nach dem Login kopieren
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
Nach dem Login kopieren

监控脚本说明

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

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

VALUE 保存要设置的阈值。

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

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

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

监控脚本执行

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

[root@localhost ~]# chmod +x disk-monitor.s
Nach dem Login kopieren

使用下面方式运行脚本:

[root@localhost ~]# ./disk-monitor.s
Nach dem Login kopieren

自动化监控过程

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

使用下面方式打开crontab:

[root@localhost ~]# crontab -
Nach dem Login kopieren

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

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

Das obige ist der detaillierte Inhalt vonLinux – Shell-Skript zur automatischen Überwachung der Festplattennutzung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:lxlinux.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!