功能:检查磁盘分区空间和 inode 使用率如果超过 80号则发广播警告空间将满。
实现思路:
-
使用 df 命令获取磁盘分区的空间信息和 inode 信息。
-
解析 df 命令的输出结果并计算空间使用率和 inode 使用率。
-
判断空间使用率和 inode 使用率是否超过 80%,如果超过则发出广播警告空间将满。
-
可以将该脚本设置为定时任务,每隔一定时间自动运行一次。
参考代码:
#!/bin/bash
# 获取磁盘分区信息
disk_info=$(df -h)
# 解析磁盘分区信息并计算空间使用率和 inode 使用率
usage=$(echo "${disk_info}" | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $6 }')
inode_usage=$(echo "${disk_info}" | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $7 }')
# 遍历每个分区的空间使用率,如果超过 80% 则发送警告
while read line; do
usage_percent=$(echo "${line}" | awk '{ print $1 }' | cut -d'%' -f1)
if [ ${usage_percent} -gt 80 ]; then
partition=$(echo "${line}" | awk '{ print $2 }')
echo "Partition ${partition} is almost full (${usage_percent}% used)" | wall
fi
done <<< "${usage}"
# 遍历每个分区的 inode 使用率,如果超过 80% 则发送警告
while read line; do
inode_usage_percent=$(echo "${line}" | awk '{ print $1 }' | cut -d'%' -f1)
if [ ${inode_usage_percent} -gt 80 ]; then
partition=$(echo "${line}" | awk '{ print $2 }')
echo "Partition ${partition} is running out of inodes (${inode_usage_percent}% used)" | wall
fi
done <<< "${inode_usage}"
在 crontab 中设置定时任务,每隔 30 分钟检查一次:
*/30 * * * * /path/to/disk_space_warning.sh
``
原文地址: https://www.cveoy.top/t/topic/hfKX 著作权归作者所有。请勿转载和采集!