福建人力资源建设网站,西宁建设厅人事局网站,wordpress pid连续,广东做网站公司#x1f3c6;作者简介#xff0c;黑夜开发者#xff0c;CSDN领军人物#xff0c;全栈领域优质创作者✌#xff0c;CSDN博客专家#xff0c;阿里云社区专家博主#xff0c;2023年6月CSDN上海赛道top4。 #x1f3c6;数年电商行业从业经验#xff0c;历任核心研发工程师… 作者简介黑夜开发者CSDN领军人物全栈领域优质创作者✌CSDN博客专家阿里云社区专家博主2023年6月CSDN上海赛道top4。 数年电商行业从业经验历任核心研发工程师项目技术负责人。 欢迎 点赞✍评论⭐收藏 文章目录 一、前言二、关于他们2.1 CPU中央处理器2.2 内存也称为随机存取存储器RAM2.3 磁盘硬盘驱动器 三、监控实现3.1 监控CPU3.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占用超过该阈值时进行输出提示
threshold80while 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 ]thenecho CPU Usage Exceeded Threshold!# 在此处添加其他操作或通知机制fi# 定义间隔时间以控制检查频率sleep 5
done以上代码中threshold变量定义了设定的阈值如果CPU占用超过该阈值将输出警告信息。top命令用于获取系统的CPU占用情况grep和awk用于筛选和解析输出结果。sleep命令定义了循环的间隔时间这里设置为5秒。
你可以根据需求自定义脚本中的阈值、输出信息和其他操作。
3.2 监控内存
你可以使用 free 命令来获取当前系统的内存占用情况并使用 awk 命令来提取需要的信息。以下是一个示例代码
#!/bin/bash# 设置阈值当内存占用超过该阈值时发送警告
threshold80while true; do# 使用 free 命令获取内存占用情况并使用 awk 提取第三行的数据mem_info$(free | awk NR3{print $3/$2 * 100})# 比较内存占用情况和阈值if (( $(echo $mem_info $threshold | bc -l) )); thenecho 内存占用超过阈值($threshold%)当前占用为$mem_info%# 在此处添加发送警告的代码fi# 等待一段时间后再次监控sleep 5
done在脚本中free 命令用于获取内存占用情况其中 awk NR3{print $3/$2 * 100} 表示提取 free 命令输出的第三行包含内存占用信息并计算内存占用百分比。与阈值进行比较后如果超过阈值则输出警告信息。你可以在警告部分加入发送邮件或其他通知的代码。
脚本中使用 sleep 5 表示每隔 5 秒重新检查一次内存占用情况你可以根据需要更改该值。将以上代码保存为脚本文件比如 memory_monitor.sh并通过 chmod x memory_monitor.sh 命令给予执行权限后就可以运行该脚本来监控内存占用情况了。
3.3 监控磁盘
你可以使用df命令来获取磁盘占用情况然后编写一个shell脚本来监控磁盘占用大小。以下是一个示例代码
#!/bin/bash# 设置阈值当磁盘使用率超过该阈值时发送警报
THRESHOLD90# 获取磁盘使用率并提取百分比部分
usage$(df -h | awk $NF/{printf %s\n, $5} | cut -d% -f1)# 检查磁盘使用率是否超过阈值
if [ $usage -gt $THRESHOLD ]; thenecho 磁盘使用率超过阈值请及时清理
fi将上述代码保存到一个文件例如check_disk_usage.sh然后通过运行 bash check_disk_usage.sh 或者 ./check_disk_usage.sh 来执行脚本。
请注意即使这个脚本可以监控磁盘使用情况但它并不会持续监控。你可能需要使用定时任务工具如cron来定期运行这个脚本以便实现长期监控。
四、配置crontab
这些脚本写好了需要定时执行可以通过crontab配置每天或者几个小时跑一次。下面是每8小时跑一次的配置。
* */8 * * * bash /你的代码基础路径/disk.sh五、总结
服务器的CPU、磁盘和内存是服务器运行和处理任务的关键组件它们的正常运行状态对服务器的稳定性和性能至关重要。因此监控服务器的CPU、磁盘和内存的使用情况是非常必要的。 希望本文对您有所帮助我们下次见。