iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >bash脚本如何监控cup/内存/磁盘使用率
  • 757
分享到

bash脚本如何监控cup/内存/磁盘使用率

bash监控cup使用率bash监控内存使用率bash监控磁盘使用率 2022-06-04 23:06:17 757人浏览 独家记忆
摘要

目录查看消耗内存最多的前40个进程:自动任务做一个基础资源告警脚本利用free工具监控内存利用率,超过80报警并提取出占用内存最高的前十进程。利用df命令监控磁盘利用率,超过80报警。这篇博客中所写的,在实际工作中并没有

目录
  • 查看消耗内存最多的前40个进程:
  • 自动任务做一个基础资源告警脚本
  • 利用free工具监控内存利用率,超过80报警并提取出占用内存最高的前十进程。
  • 利用df命令监控磁盘利用率,超过80报警。

这篇博客中所写的,在实际工作中并没有什么卵用,工作中并不会用到这种脚本去监控。不过自己写一遍,可以让初学者对CPU、内存、磁盘等一些基础知识和基础命令更加了解。


#!/bin/bash

#获取内存情况
mem_total=`free | awk 'NR==2{print $2}'` #获取内存总大小
mem_use=`free  | awk 'NR==2{print $3}'` #获取内存使用大小

#统计内存使用率 (使用大小/总大小)
meoFWsfm_use_rate=`awk 'BEGIN{print('$mem_use'/'$mem_total')*100}'| awk '{print int($0)}'`
#echo $mem_use_rate ----------

#获取磁盘使用率
disk_use_rate_str=`df -h | grep /dev/vda1 | awk -F '[ %]+' '{print $5}'| awk '{print int($0)}'`

#获取cpu使用率
cpu_use_rate=`top -n 1 | grep Cpu |awk '{print $2}'| awk '{print int($0)}'`

#报警时间
file_log=/home/error.log  #提前创建
now_time=`date '+%F %T'`

function send_mail(){

}


function check(){

        if [[ "men_use_rate" > 50 ]] || [[ "disk_use_rate" > 50 ]] || [[ "cpu_use_rate" > 50 ]];then
                echo "报警时间:"$now_time > $file_log
                echo "cpu使用率:${cpu_use_rate}% --> 磁盘使用率:${disk_use_rate}% --> 内存使用率:${men_use_rate}%"
                send_mail
        fi
}

function main(){
        check
}
main

注: awk '{print int($0)}'

可以将浮点数转为整数 在进行比较大小 shell 不支持浮点直接与整数进行比较
需要用的bc 的计算方式
if [[ “men_use_rate” > 50 ]] 等同于 if [ $men_use_rate > 50 ]

bc 例:


#!/bin/bash
var1=20
var2=3.14159
var3=`echo "scale=0;$var2 - $var1 " | bc`
echo $var3

var4=`echo "$var1 < $var2"|bc`
echo $var4

查看消耗内存最多的前40个进程:


ps auxw|head -1;ps auxw|sort -rn -k4|head -40

自动任务做一个基础资源告警脚本


#!/bin/bash
now=`date -u -d"+8 hour" +'%Y-%m-%d %H:%M:%S'`
#cpu使用阈值
cpu_warn='85'
#mem空闲阈值
mem_warn='1000'
#disk使用阈值
disk_warn='90'

#---cpu
item_cpu () {
cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $8}'|cut -f 1 -d "."`
cpu_use=`expr 100 - $cpu_idle`
echo "$now 当前cpu使用率为 $cpu_use" >> /tmp/monitoring.log
if [ $cpu_use -gt $cpu_warn ]
    then
        echo "cpu warning!!!"
    else
        echo "cpu ok!!!"
fi
}
#---mem
item_mem () {
#MB为单位
mem_free=`free -m | grep "Mem" | awk '{print $4+$6}'`
echo "$now 当前内存剩余空间为 ${mem_free}MB" >> /tmp/monitoring.log
if [ $mem_free -lt $mem_warn  ]
    then
        echo "mem warning!!!"
    else
        echo "mem ok!!!"
                
fi
}
#---disk
item_disk () {
disk_use=`df -P | grep /dev/vda2 | grep -v -E '(tmp|boot)' | awk '{print $5}' | cut -f 1 -d "%"`
echo "$now 当前磁盘使用率为 $disk_use" >> /tmp/monitoring.log
if [ $disk_use -gt $disk_warn ]
    then
        echo "disk warning!!!"
    else
        echo "disk ok!!!"
        
fi


}

item_cpu
item_mem
item_disk

利用free工具监控内存利用率,超过80报警并提取出占用内存最高的前十进程。

代码如下:


#!/bin/bash
#
total=$(free -m | sed -n '2p' | awk '{print $2}')
used=$(free -m | sed -n '2p' | awk '{print $3}')
free=$(free -m | sed -n '2p' | awk '{print $4}')
shared=$(free -m | sed -n '2p' | awk '{print $5}')
buff=$(free -m | sed -n '2p' | awk '{print $6}')
cached=$(free -m | sed -n '2p' | awk '{print $7}')
rate=`echo "scale=2;$used/$total" | bc | awk -F. '{print $2}'`
echo -e "total\tused\tfree\tshared\tbuffer\tavailable"
echo -e "${total}M\t${used}M\t${free}M\t${shared}M\t${buff}M\t${cached}M\nrate:${rate}%"
if    [ $rate -ge 80 ]
then    echo "Memory Warn"
    ps aux | grep -v USER | sort -rn -k4 | head
fi

利用df命令监控磁盘利用率,超过80报警。

df :显示磁盘分区上的可使用的磁盘空间。

  -h 以更易读的方式显示;

  -P 使用POSIX的输出格式。


#!/bin/bash
#
DEV=`df -hP | grep '^/dev/*' | cut -d' ' -f1 | sort`
for I in $DEV
do dev=`df -Ph | grep $I | awk '{print $1}'`
size=`df -Ph | grep $I | awk '{print $2}'`
used=`df -Ph | grep $I | awk '{print $3}'`
free=`df -Ph | grep $I | awk '{print $4}'`
rate=`df -Ph | grep $I | awk '{print $5}'`
mount=`df -Ph | grep $I | awk '{print $6}'`
echo -e "$I:\tsize:$size\tused:$used\tfree:$free\trate:$rate\tmount:$mount"
F=`echo $rate | awk -F% '{print $1}'`
if [ $F -ge 80 ];then
    echo "$mount Warn"
    else echo "It's OK"
fi
done

到此这篇关于bash脚本如何监控cup/内存/磁盘使用率的文章就介绍到这了,更多相关bash监控cup/内存/磁盘使用率内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

--结束END--

本文标题: bash脚本如何监控cup/内存/磁盘使用率

本文链接: https://www.lsjlt.com/news/21412.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • shell脚本如何实现磁盘监控系统
    这篇文章给大家分享的是有关shell脚本如何实现磁盘监控系统的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。利用shell脚本实现每隔60秒磁盘内存数据监控#!/bin/bash#Author:GaoHongYu#...
    99+
    2023-06-09
  • 怎么利用Bash脚本监控Linux的内存使用情况
    本篇文章为大家展示了怎么利用Bash脚本监控Linux的内存使用情况,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。现在用于监控Linux系统内存的工具有很多,当系统到达指定的阈值时,监控工具可以发送...
    99+
    2023-06-28
  • 怎么用Bash脚本监控Linux上的内存使用情况
    这篇文章将为大家详细讲解有关怎么用Bash脚本监控Linux上的内存使用情况,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。方法-1:用 Linux Bash 脚本监视内存利用率并发送电子邮件如果只想在系统...
    99+
    2023-06-16
  • 如何实现监视磁盘使用情况的Shell脚本
    这篇文章将为大家详细讲解有关如何实现监视磁盘使用情况的Shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。monitordisk.sh如下 代码如下:#!/bin/bash #Updated:20...
    99+
    2023-06-09
  • Bash 脚本如何优化存储效率?
    Bash 脚本是一种非常流行的脚本语言,可以用来自动化完成各种任务,例如文件操作、数据处理、系统管理等。然而,当脚本需要处理大量数据时,存储效率就成为一个非常重要的问题。在本文中,我们将介绍一些 Bash 脚本优化存储效率的方法。 使用...
    99+
    2023-11-07
    并发 bash 存储
  • 如何实现shell脚本监控linux系统内存使用情况
    本篇内容介绍了“如何实现shell脚本监控linux系统内存使用情况”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、安装linux下面的一...
    99+
    2023-06-09
  • Shell脚本监控Linux系统CPU使用率
    通过top或者htop命令。可以看到每一个cpu核心的使用情况,但是服务器的整体cpu使用情况,就无法直观的看到。需要通过shell脚本才能实现。 cpu_ck.sh#/bin/bash #environment var...
    99+
    2023-01-31
    使用率 脚本 系统
  • Linux中怎么使用shell脚本监控系统内存
    这篇文章主要介绍了Linux中怎么使用shell脚本监控系统内存的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux中怎么使用shell脚本监控系统内存文章都会有所收获,下面我们一起来看看吧。一、安装Lin...
    99+
    2023-06-27
  • 如何用shell脚本监控系统负载、CPU和内存使用情况
    这篇文章主要讲解了“如何用shell脚本监控系统负载、CPU和内存使用情况”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用shell脚本监控系统负载、CPU和内存使用情况”吧!一、安装l...
    99+
    2023-06-09
  • Mysql索引如何使用监控脚本
    这篇文章将为大家详细讲解有关Mysql索引如何使用监控脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 开启变量:默认是关闭的,它在内存中...
    99+
    2024-04-02
  • 怎么用Linux Shell脚本来监控磁盘使用情况并发送邮件
    本篇内容介绍了“怎么用Linux Shell脚本来监控磁盘使用情况并发送邮件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!方法一:Linux...
    99+
    2023-06-16
  • 如何在Linux中使用Smartctl监控磁盘性能
    本篇内容主要讲解“如何在Linux中使用Smartctl监控磁盘性能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何在Linux中使用Smartctl监控磁盘性能”吧!Smartctl(S.M...
    99+
    2023-06-13
  • 如何利用Shell脚本实现邮件监控Linux系统的内存
    这篇文章主要为大家展示了“如何利用Shell脚本实现邮件监控Linux系统的内存”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何利用Shell脚本实现邮件监控Linux系统的内存”这篇文章吧。...
    99+
    2023-06-15
  • python如何通过psutil获取服务器cpu、内存、磁盘使用率
    psutil是一个跨平台的Python库,它允许你获取有关系统进程和系统资源使用情况的信息。它支持Windows、Linux、OS X、FreeBSD、OpenBSD和NetBSD等...
    99+
    2023-05-17
    python使用psutil获取服务器cpu python使用psutil
  • Linux中如何监控磁盘分区和使用情况
    小编给大家分享一下Linux中如何监控磁盘分区和使用情况,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!df命令df是一个Linux命令行实用程序,用于监视Linux磁盘使用情况。df命令显示文件系统磁盘使用情况详细信息的完...
    99+
    2023-06-15
  • 阿里云服务器内存使用率如何监控和优化
    阿里云服务器内存使用率是一个重要的性能指标,它直接关系到服务器的运行效率和稳定性。本文将详细说明如何监控阿里云服务器内存使用率,以及如何通过优化来提高服务器的性能。 一、阿里云服务器内存使用率的监控阿里云服务器提供了多种方式来监控内存使用率...
    99+
    2023-11-15
    阿里 使用率 内存
  • Redis的内存使用情况如何监控
    使用Redis自带的INFO命令来查看Redis实例的内存使用情况。可以通过命令INFO memory来查看内存相关的信息,如当...
    99+
    2024-04-02
  • Shell脚本如何监控目录内文件改动
    这篇文章将为大家详细讲解有关Shell脚本如何监控目录内文件改动,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体代码如下所示:#! /bin/bashwebroot="/home/w...
    99+
    2023-06-09
  • 怎么使用shell脚本采集系统cpu、内存、磁盘、网络等信息
    这篇文章主要介绍“怎么使用shell脚本采集系统cpu、内存、磁盘、网络等信息”,在日常操作中,相信很多人在怎么使用shell脚本采集系统cpu、内存、磁盘、网络等信息问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-09
  • Shell开发实践:服务器的磁盘、CPU、内存的占用监控
    🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业...
    99+
    2023-09-05
    服务器 linux 运维 shell 磁盘监控 原力计划
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作