帮助文档
专业提供香港服务器、香港云服务器、香港高防服务器租用、香港云主机、台湾服务器、美国服务器、美国云服务器vps租用、韩国高防服务器租用、新加坡服务器、日本服务器租用 一站式全球网络解决方案提供商!专业运营维护IDC数据中心,提供高质量的服务器托管,服务器机房租用,服务器机柜租用,IDC机房机柜租用等服务,稳定、安全、高性能的云端计算服务,实时满足您的多样性业务需求。 香港大带宽稳定可靠,高级工程师提供基于服务器硬件、操作系统、网络、应用环境、安全的免费技术支持。
服务器资讯 / 香港服务器租用 / 香港VPS租用 / 香港云服务器 / 美国服务器租用 / 台湾服务器租用 / 日本服务器租用 / 官方公告 / 帮助文档
Shell开发实践:服务器的磁盘、CPU、内存的占用监控
发布时间:2024-02-27 23:48:51   分类:帮助文档
Shell开发实践:服务器的磁盘、CPU、内存的占用监控






🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论⭐收藏



文章目录
🚀一、前言🚀二、关于他们🔎2.1 CPU(中央处理器)🔎2.2 内存(也称为随机存取存储器RAM)🔎2.3 磁盘(硬盘驱动器)
🚀三、监控实现🔎3.1 监控CPU🔎3.2 监控内存🔎3.3 监控磁盘
🚀四、配置crontab🚀五、总结



🚀一、前言

CPU、内存和磁盘是计算机中重要且相互依赖的组件。CPU执行运算和控制指令,内存提供临时存储空间用于存储CPU需要处理的数据和指令,而磁盘则提供长期存储的功能。它们共同工作以实现计算机的正常运行和数据处理任务。

本文主要通过shell实现如何监控他们的使用情况。

🚀二、关于他们
🔎2.1 CPU(中央处理器)
是计算机的核心组件之一,负责执行计算机指令和控制计算机的操作。它是计算机的“大脑”,决定了计算机的运行速度和性能。CPU包含多个核心,每个核心可以执行一个或多个线程的指令。

🔎2.2 内存(也称为随机存取存储器RAM)
是计算机用于存储数据和指令的地方。它是临时存储器,这意味着当计算机关闭或断电时,其中的数据会丢失。内存以字节为单位存储数据,并具有不同的访问速度和容量。计算机将需要处理的数据和指令从磁盘加载到内存中,然后CPU从内存中获取数据并进行处理。
🔎2.3 磁盘(硬盘驱动器)
是计算机用于长期存储数据和程序的设备。相比内存,磁盘的容量更大,但读写速度较慢。磁盘通常是非易失性存储器,这意味着即使计算机关闭或断电,其中的数据也能保持不变。磁盘由一个或多个盘片组成,这些盘片通过磁头来读取和写入数据。计算机通过操作系统和文件系统来管理磁盘上的数据。

🚀三、监控实现
🔎3.1 监控CPU
要编写一个shell脚本来监控CPU占用大小,可以使用命令top来获取系统的CPU信息,并解析输出结果。
以下是一个示例的shell脚本代码,该脚本会循环读取CPU的占用情况,并在符合条件时输出提示信息。
#!/bin/bash

# 设置阈值,当CPU占用超过该阈值时进行输出提示
threshold=80

while true
do
# 使用top命令获取CPU占用信息,并使用grep和awk筛选和解析输出结果
cpu_usage=$(top -bn 1 | grep "%Cpu(s)" | awk '{print $2}')

# 将浮点数转换为整数,以便进行比较
cpu_usage=${cpu_usage%.*}

echo "Current CPU Usage: ${cpu_usage}%"

# 检查CPU占用是否超过阈值
if [ $cpu_usage -gt $threshold ]
then
echo "CPU Usage Exceeded Threshold!"
# 在此处添加其他操作或通知机制
fi

# 定义间隔时间,以控制检查频率
sleep 5
done

以上代码中,threshold变量定义了设定的阈值,如果CPU占用超过该阈值,将输出警告信息。top命令用于获取系统的CPU占用情况,grep和awk用于筛选和解析输出结果。sleep命令定义了循环的间隔时间,这里设置为5秒。
你可以根据需求自定义脚本中的阈值、输出信息和其他操作。
🔎3.2 监控内存
你可以使用 free 命令来获取当前系统的内存占用情况,并使用 awk 命令来提取需要的信息。以下是一个示例代码:
#!/bin/bash

# 设置阈值,当内存占用超过该阈值时发送警告
threshold=80

while true; do
# 使用 free 命令获取内存占用情况,并使用 awk 提取第三行的数据
mem_info=$(free | awk 'NR==3{print $3/$2 * 100}')

# 比较内存占用情况和阈值
if (( $(echo "$mem_info > $threshold" | bc -l) )); then
echo "内存占用超过阈值($threshold%),当前占用为:$mem_info%"
# 在此处添加发送警告的代码
fi

# 等待一段时间后再次监控
sleep 5
done

在脚本中,free 命令用于获取内存占用情况,其中 awk 'NR==3{print $3/$2 * 100}' 表示提取 free 命令输出的第三行(包含内存占用信息),并计算内存占用百分比。与阈值进行比较后,如果超过阈值,则输出警告信息。你可以在警告部分加入发送邮件或其他通知的代码。
脚本中使用 sleep 5 表示每隔 5 秒重新检查一次内存占用情况,你可以根据需要更改该值。将以上代码保存为脚本文件(比如 memory_monitor.sh),并通过 chmod +x memory_monitor.sh 命令给予执行权限后,就可以运行该脚本来监控内存占用情况了。
🔎3.3 监控磁盘
你可以使用df命令来获取磁盘占用情况,然后编写一个shell脚本来监控磁盘占用大小。以下是一个示例代码:
#!/bin/bash

# 设置阈值,当磁盘使用率超过该阈值时发送警报
THRESHOLD=90

# 获取磁盘使用率,并提取百分比部分
usage=$(df -h | awk '$NF=="/"{printf "%s\n", $5}' | cut -d'%' -f1)

# 检查磁盘使用率是否超过阈值
if [ $usage -gt $THRESHOLD ]; then
echo "磁盘使用率超过阈值,请及时清理!"
fi

将上述代码保存到一个文件(例如check_disk_usage.sh),然后通过运行 bash check_disk_usage.sh 或者 ./check_disk_usage.sh 来执行脚本。
请注意,即使这个脚本可以监控磁盘使用情况,但它并不会持续监控。你可能需要使用定时任务工具(如cron)来定期运行这个脚本,以便实现长期监控。
🚀四、配置crontab
这些脚本写好了,需要定时执行,可以通过crontab配置每天或者几个小时跑一次。下面是每8小时跑一次的配置。
* */8 * * * bash /你的代码基础路径/disk.sh

🚀五、总结
服务器的CPU、磁盘和内存是服务器运行和处理任务的关键组件,它们的正常运行状态对服务器的稳定性和性能至关重要。因此,监控服务器的CPU、磁盘和内存的使用情况是非常必要的。
希望本文对您有所帮助,我们下次见。




香港云服务器租用推荐
服务器租用资讯
·广东云服务有限公司怎么样
·广东云服务器怎么样
·广东锐讯网络有限公司怎么样
·广东佛山的蜗牛怎么那么大
·广东单位电话主机号怎么填写
·管家婆 花生壳怎么用
·官网域名过期要怎么办
·官网邮箱一般怎么命名
·官网网站被篡改怎么办
服务器租用推荐
·美国服务器租用
·台湾服务器租用
·香港云服务器租用
·香港裸金属服务器
·香港高防服务器租用
·香港服务器租用特价