主机资源情况监控自动化脚本

在运维得日常工作中我们会运用到写一下脚本来帮助我们提高工作效率,今天就分享一个使用shell脚本来监控我们的系统资源

vim /tmp/resources.sh

#!/bin/bash
# 获取要监控的本地服务器IP地址
##IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`
IP=`ifconfig | grep -C 1 eno | grep "inet " |awk '{print $2}'`
echo "IP地址:"$IP

# 获取cpu总核数
cpu_num=`grep -c "model name" /proc/cpuinfo`
echo "cpu总核数:"$cpu_num

# 1、获取CPU利用率
# 获取用户空间占用CPU百分比
cpu_user=`top -b -n 1 | grep Cpu | awk -F"[:,]" '{print $2}' | cut -f 1 -d "%"`
echo "用户空间占用CPU百分比:"$cpu_user

# 获取内核空间占用CPU百分比
cpu_system=`top -b -n 1 | grep Cpu | awk -F',' '{print $3}' | cut -f 1 -d "%"`
echo "内核空间占用CPU百分比:"$cpu_system

# 获取空闲CPU百分比
cpu_idle=`top -b -n 1 | grep Cpu | awk -F',' '{print $4}' | cut -f 1 -d "%"`
echo "空闲CPU百分比:"$cpu_idle

# 获取等待输入输出占CPU百分比
cpu_iowait=`top -b -n 1 | grep Cpu | awk -F',' '{print $5}' | cut -f 1 -d "%"`
echo "等待输入输出占CPU百分比:"$cpu_iowait

#2、获取CPU上下文切换和中断次数
# 获取CPU中断次数
cpu_interrupt=`vmstat -n 1 1 | sed -n 3p | awk -F' ' '{print $11}'`
echo "CPU中断次数:"$cpu_interrupt

# 获取CPU上下文切换次数
cpu_context_switch=`vmstat -n 1 1 | sed -n 3p | awk -F' ' '{print $12}'`
echo "CPU上下文切换次数:"$cpu_context_switch

#3、获取CPU负载信息
# 获取CPU15分钟前到现在的负载平均值
cpu_load_15min=`uptime | awk '{print $12}' | cut -f 1 -d ','`
echo "CPU 15分钟前到现在的负载平均值:"$cpu_load_15min

# 获取CPU5分钟前到现在的负载平均值
cpu_load_5min=`uptime | awk '{print $11}' | cut -f 1 -d ','`
echo "CPU 5分钟前到现在的负载平均值:"$cpu_load_5min

# 获取CPU1分钟前到现在的负载平均值
cpu_load_1min=`uptime | awk '{print $10}' | cut -f 1 -d ','`
echo "CPU 1分钟前到现在的负载平均值:"$cpu_load_1min

# 获取任务队列(就绪状态等待的进程数)
cpu_task_length=`vmstat -n 1 1 | sed -n 3p | awk '{print $1}'`
echo "CPU任务队列长度:"$cpu_task_length

chmod  +x   /tmp/resources.sh 

sh resources.sh 

IP地址:
cpu总核数:1
用户空间占用CPU百分比: 0.0 us
内核空间占用CPU百分比: 0.0 ni
空闲CPU百分比: 93.3 id
等待输入输出占CPU百分比: 0.0 wa
CPU中断次数:36
CPU上下文切换次数:32
CPU 15分钟前到现在的负载平均值:
CPU 5分钟前到现在的负载平均值:
CPU 1分钟前到现在的负载平均值:0.05
CPU任务队列长度::ngth

在排除故障得时候可以快速让我们对系统资源消耗情况做一个初步得了解。

 

posted @ 2020-12-31 16:47  显示昵称!  阅读(109)  评论(0)    收藏  举报