掌握Linux Shell条件判断(轻松实现内存监控与响应)

V5主机测评

在Linux系统管理中,Shell脚本是自动化任务的利器。而条件判断则是让脚本“智能”起来的关键。本文将手把手教你如何使用Shell中的条件语句来检测系统内存使用情况,并根据结果做出响应。即使你是完全的新手,也能轻松上手!

掌握Linux Shell条件判断(轻松实现内存监控与响应)

一、什么是Shell条件判断?

Shell脚本中的条件判断通常使用 if 语句。它会根据某个条件是否成立(真或假)来决定执行哪一段代码。基本语法如下:

if [ 条件 ]; then    # 条件为真时执行的命令elif [ 其他条件 ]; then    # 其他条件为真时执行的命令else    # 所有条件都不成立时执行的命令fi  

二、如何获取系统内存信息?

在Linux中,我们可以使用 free 命令查看内存使用情况。例如:

$ free -m              total        used        free      shared  buff/cache   availableMem:           7976        2100        3200         150        2676        5400Swap:          2047           0        2047  

其中 -m 表示以MB为单位显示。我们主要关注 Mem 行的 available(可用内存)或 used(已用内存)。

三、提取内存数值用于条件判断

为了在脚本中使用内存值,我们需要从 free 命令的输出中提取具体数字。可以结合 awk 命令:

# 获取可用内存(单位:MB)available_mem=$(free -m | awk 'NR==2{print $7}')# 获取已用内存百分比(更精确的方式)used_percent=$(free | awk 'NR==2{printf "%.0f", $3*100/$2}')  

解释:
- NR==2 表示取第二行(即Mem行)
- $7available 列(不同版本可能略有差异,请用 free -m 确认列号)
- $3*100/$2 计算已用内存百分比($3=used, $2=total)

四、实战:内存不足时发送警告

现在我们把前面的知识结合起来,写一个简单的内存监控脚本。当可用内存低于500MB时,打印警告信息。

#!/bin/bash# 获取可用内存(MB)available=$(free -m | awk 'NR==2{print $7}')# 设置阈值threshold=500# 条件判断if [ $available -lt $threshold ]; then    echo "[警告] 可用内存不足!当前仅剩 ${available}MB"    # 这里可以添加发送邮件、记录日志等操作else    echo "内存充足,当前可用:${available}MB"fi  

保存为 check_memory.sh,然后赋予执行权限并运行:

chmod +x check_memory.sh./check_memory.sh  

五、进阶:监控内存使用率

有时我们更关心内存使用率(百分比)。下面是一个基于使用率的判断脚本:

#!/bin/bash# 获取内存使用百分比usage=$(free | awk 'NR==2{printf "%.0f", $3*100/$2}')# 如果使用率超过80%,发出警告if [ $usage -gt 80 ]; then    echo "[严重] 内存使用率过高:${usage}%"else    echo "内存使用率正常:${usage}%"fi  

六、小结

通过本文,你已经学会了:

  • 如何使用 if 语句进行 Linux Shell条件判断
  • 如何用 freeawk 提取内存数据
  • 编写一个简单的 Shell内存监控 脚本
  • 根据内存状态自动响应,提升系统运维效率

这些技能不仅能用于内存监控,还能扩展到CPU、磁盘等其他资源的检测。掌握 Shell脚本内存检测Shell if语句 的灵活运用,是迈向自动化运维的重要一步!

提示:实际部署时,可将脚本加入 crontab 定时任务,实现持续监控。

文章版权声明:除非注明,否则均为V5主机测评网_性价比VPS_性价比云服务器_免费独立服务器原创文章,转载或复制请以超链接形式并注明出处。