Linux - Shell script for automatically monitoring disk usage
如果您在服务器上运行关键任务,那么监控磁盘使用情况并在达到阈值时通知管理员是非常重要的。本文将介绍如何编写一个脚本来自动监控磁盘使用情况,并在达到阈值时将报告发送到您的邮箱。
在本文中,我们将编写一个 shell 脚本,在 crontab 中指定固定时间间隔监控磁盘使用情况,并在报告达到指定阈值时通过电子邮件发送报告。
首先,需要确保系统安装了 mail
命令和 postfix
发送邮件服务。下面是在 Centos8 中安装这些工具的命令:
[root@localhost ~]# yum -y install mailx postfix [root@localhost ~]# systemctl enable --now postfix
下面使用mail命令发送邮件测试:
[root@localhost ~]# echo "This message will go into the body of the mail." | mail -s "Testing from the server." root@localhos

本文不讲解如何配置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
监控脚本说明
上述脚本使用df -hP
命令获取内存信息。
环境变量MAILID
保存必须在其中发送报告的邮箱地址。
VALUE
保存要设置的阈值。
SERVERNAME
保存服务器的主机名,用于电子邮件通知中的服务器标识。
使用 for 循环,它将遍历所有具有“/dev”挂载点的文件系统。然后它将文件系统名称和磁盘使用百分比保存到两个变量FILESYSTEM
和 DISK_USAGE
。
使用上述变量,磁盘使用量等于阈值 VALUE
变量。根据结果,将向指定的邮箱发送一封电子邮件。
监控脚本执行
下面需要修改一下disk-monitor.sh
脚本的权限,为它添加可执行权限:
[root@localhost ~]# chmod +x disk-monitor.s
使用下面方式运行脚本:
[root@localhost ~]# ./disk-monitor.s
自动化监控过程
手动运行脚本没有任何意义,因为我们希望自动运行该过程。自动运行该过程的最佳方法是将脚本添加到 crontab
配置文件中。
使用下面方式打开crontab:
[root@localhost ~]# crontab -
将下面内容添加到配置文件中:
*/5 * * * * sh /home/ec2-user/disk-monitor.sh

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!

Artificial Intelligence (AI) is a term that’s been buzzing around for a while now, from self-driving cars to voice assistants like Siri and Alexa, AI is becoming a part of our everyday lives. But what exactly is AI, and why should Linux users care ab


For someone new to Linux, using it can still feel challenging, even with user-friendly distributions like Ubuntu and Mint. While these distributions simplify many tasks, some manual configuration is often required, but fully harnessing the power of L

In the previous article, we introduced the basics of AI and how it fits into the world of Linux. Now, it’s time to dive deeper and set up your Linux system to start building your first AI model. Whether you’re a complete beginner or have some exper

If you’re looking to manage your server with ease, Kloxo is a great option, as it is free and open-source web hosting control panel that allows you to manage your server and websites with a simple, user-friendly interface. In this guide, we’ll walk

If you’ve ever found yourself in a situation where you’re trying to move a bunch of files and folders, only to be stumped by spaces in the folder names, you’re not alone. Spaces in filenames or folder names can quickly become a frustrat

The KDE Plasma desktop is renowned for its sleek design, extensive customization options, and impressive performance. For users who appreciate a polished, modern interface with the flexibility to tweak every detail, Plasma is a dream come true. But w


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Zend Studio 13.0.1
Powerful PHP integrated development environment

Notepad++7.3.1
Easy-to-use and free code editor

Dreamweaver Mac version
Visual web development tools

WebStorm Mac version
Useful JavaScript development tools

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.
