Shell开发实践:服务器的磁盘、CPU、内存的占用监控

这篇具有很好参考价值的文章主要介绍了Shell开发实践:服务器的磁盘、CPU、内存的占用监控。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Shell开发实践:服务器的磁盘、CPU、内存的占用监控,服务器运维/架构,服务器,linux,运维,shell,磁盘监控,原力计划

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


🚀一、前言

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

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

Shell开发实践:服务器的磁盘、CPU、内存的占用监控,服务器运维/架构,服务器,linux,运维,shell,磁盘监控,原力计划

🚀二、关于他们

🔎2.1 CPU(中央处理器)

是计算机的核心组件之一,负责执行计算机指令和控制计算机的操作。它是计算机的“大脑”,决定了计算机的运行速度和性能。CPU包含多个核心,每个核心可以执行一个或多个线程的指令。

Shell开发实践:服务器的磁盘、CPU、内存的占用监控,服务器运维/架构,服务器,linux,运维,shell,磁盘监控,原力计划

🔎2.2 内存(也称为随机存取存储器RAM)

是计算机用于存储数据和指令的地方。它是临时存储器,这意味着当计算机关闭或断电时,其中的数据会丢失。内存以字节为单位存储数据,并具有不同的访问速度和容量。计算机将需要处理的数据和指令从磁盘加载到内存中,然后CPU从内存中获取数据并进行处理。
Shell开发实践:服务器的磁盘、CPU、内存的占用监控,服务器运维/架构,服务器,linux,运维,shell,磁盘监控,原力计划

🔎2.3 磁盘(硬盘驱动器)

是计算机用于长期存储数据和程序的设备。相比内存,磁盘的容量更大,但读写速度较慢。磁盘通常是非易失性存储器,这意味着即使计算机关闭或断电,其中的数据也能保持不变。磁盘由一个或多个盘片组成,这些盘片通过磁头来读取和写入数据。计算机通过操作系统和文件系统来管理磁盘上的数据。

Shell开发实践:服务器的磁盘、CPU、内存的占用监控,服务器运维/架构,服务器,linux,运维,shell,磁盘监控,原力计划

🚀三、监控实现

🔎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占用情况,grepawk用于筛选和解析输出结果。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磁盘内存的使用情况是非常必要的。

Shell开发实践:服务器的磁盘、CPU、内存的占用监控,服务器运维/架构,服务器,linux,运维,shell,磁盘监控,原力计划
希望本文对您有所帮助,我们下次见。文章来源地址https://www.toymoban.com/news/detail-693180.html

到了这里,关于Shell开发实践:服务器的磁盘、CPU、内存的占用监控的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux服务器查看cpu和内存

    cat /proc/cpuinfo | grep \\\"physical id\\\" | sort | uniq | wc -l cat /proc/cpuinfo | grep \\\"cpu cores\\\" | uniq grep processor /proc/cpuinfo|wc -l cat /proc/cpuinfo |grep MHz|uniq less /proc/cpuinfo |grep model free -m free -h

    2024年02月05日
    浏览(72)
  • Linux 查看服务器内存、CPU 命令

    1 查看物理CPU个数:         Procs(进程) 2 查看服务器CPU内核个数 1 linux查看系统内存(硬盘) 2 查看服务器硬盘(当前文件夹下)使用率: 3 查看服务器硬盘(所有文件占用率)使用率: 1 查看内存,不带单位 2 查看内存使用情况,带单位,显示查看结果 显示的参数:       

    2024年02月15日
    浏览(67)
  • shell脚本:监控cpu,内存,磁盘,IO,带宽,阈值告警

    一.shell脚本监控内存和磁盘的使用率,设置阈值,并通过邮件告警 二.shell脚本监控内存,磁盘,带宽,io,cpu的使用率,设置阈值进行微信告警

    2024年02月04日
    浏览(45)
  • go获取服务器信息(主机、CPU、内存、硬盘)

    使用 github.com/shirou/gopsutil 库来获取机器信息,您可以按照以下步骤进行:

    2024年02月09日
    浏览(58)
  • Linux(包括centos) 如何查看服务器内存、CPU

    CPU架构主要包括:amd64、arm32v7、arm64v8、mips64el、mips32、ppc64le和ppc32等架构。 CPU信息主要为中央处理器详细信息,包括: 架构 核心数量 处理速度 厂商名称 CPU主频 标签 … 注:不同的操作系统或者CPU架构提供的信息不一定相同。 输出: 可以通过grep命令过滤信息: lscpu是一个

    2024年02月12日
    浏览(76)
  • 命令查看Linux服务器内存、CPU、显卡、硬盘使用情况

    使用命令:free -m 大致结果类似下图: 内存占用情况 参数解释: Mem行(单位均为M): total:内存总数 used:已使用内存数 free:空闲内存数 shared:当前废弃不用 buffers:缓存内存数(Buffer) cached:缓存内舒数(Page) (-/+ buffers/cache)行: (-buffers/cache): 真正使用的内存数,指

    2024年02月04日
    浏览(74)
  • 获取linuxIP、内存、cpu、磁盘IO等信息的Shell脚本及其讲解

    grep是一个在Unix和Unix-like系统上使用的命令行工具,用于在文本文件中搜索匹配指定模式的行。它的名字来自于\\\"global regular expression print\\\"(全局正则表达式打印)的缩写。grep的基本用法是通过指定一个正则表达式模式和一个文件名(或者从标准输入读取数据),来查找和打印

    2024年04月27日
    浏览(33)
  • java获取当前服务器状态cpu、内存、存储等核心信息

    目录 1.需要导入依赖包  2.系统自带参数 3.获取当前服务器状态cpu、内存、存储等核心信息  4.引入包后方法不存在  5. 获取的cpu利用率和任务管理器cpu利用率值差距问题   RESULT: RESULT:  需要引入下面的包:  就是需要配置在 CentralProcessor 实例化之前:配置上也会有差距,相

    2024年02月03日
    浏览(51)
  • Linux 查看服务器内存、CPU、网络等占用情况的命令

    1、查看物理CPU个数:cat  2、查看服务器CPU内核个数:cat    每个物理CPU中core的个数(即核数) 3、服务器内存使用情况:free 3.1、缓存清除 如果cached过大接近total数就需要清除缓存了,缓存清除命令:  4、查看服务器的平均负载:top top   --可以查看服务器各个进程情况 u

    2024年02月08日
    浏览(69)
  • 阿里云c8i服务器CPU、内存性能测评

    阿里云第八代云服务器ECS计算型c8i实例,CPU采用Intel Xeon Emerald Rapids或者Intel Xeon Sapphire Rapids,主频不低于2.7 GHz,全核睿频3.2,阿里云百科aliyunbaike.com分享阿里云c8i服务器CPU处理器型号、存储、网络、安全、使用场景和不同CPU内存配置的c8i服务器性能参数表: 阿里云服务器E

    2024年02月01日
    浏览(88)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包