Shell脚本监控Centos 7系统运行状态

复制代码
#!/usr/bin/bash
## @date: 2024-09-09
## This is a script for security operation indicator monitoring!

export LANG="zh_CN.UTF-8"

##当前系统时间

DATE_time=$(date -d "0 day" +%Y年%m月%d日%H时%M分%S秒)

##服务器IP地址

IP_addr=$(ifconfig eth0 | grep inet | grep -v inet6 | awk '{print $2}')

##CPU占用率

CPU=100.0
CPU_free=$(top -b -n 1 | grep Cpu | awk '{print $8}')
CPU_used=$(awk 'BEGIN{printf "%.1f%\n",'$CPU' - '$CPU_free'}')
sleep 2
##内存使用率

RAM_total=$(free -m | grep Mem | awk '{print $2}')
RAM_used=$(free -m | grep Mem | awk '{print $3}')
RAM_percent=$(awk 'BEGIN{printf "%.1f%\n",('$RAM_used'/'$RAM_total')*100}')
sleep 2

##磁盘使用率

Disk_totalSpace=$(df -m | sed '1d;/ /!N;s/\n//;s/ \+/ /;' | awk '{totalSpace+=$2} END{print totalSpace}')
Disk_used=$(df -m | sed '1d;/ /!N;s/\n//;s/ \+/ /;' | awk '{used+=$3} END{print used}')
Disk_percent=$(awk 'BEGIN{printf "%.1f%\n",('$Disk_used'/'$Disk_totalSpace')*100}')
sleep 2

##带宽使用率

##执行查看带宽命令,10秒内执行5次,取平均值

i=1
Receive_result=0.000
Transmit_result=0.000
while(($i<=5))
do
Receive_before=$(cat /proc/net/dev | grep 'eth' | tr : " " | awk '{print $2}')
Transmit_before=$(cat /proc/net/dev | grep 'eth' | tr : " " | awk '{print $10}')
sleep 2
Receive_after=$(cat /proc/net/dev | grep 'eth' | tr : " " | awk '{print $2}')
Transmit_after=$(cat /proc/net/dev | grep 'eth' | tr : " " | awk '{print $10}')

Receive_bandwidth=$(awk 'BEGIN{printf "%.3f\n",('$Receive_after'-'$Receive_before')/1024/1024/2*8}')
Transmit_bandwidth=$(awk 'BEGIN{printf "%.3f\n",('$Transmit_after'-'$Transmit_before')/1024/1024/2*8}')

Receive_result=$(awk 'BEGIN{printf "%.3f\n",('$Receive_result'+'$Receive_bandwidth')}')
Transmit_result=$(awk 'BEGIN{printf "%.3f\n",('$Transmit_result'+'$Transmit_bandwidth')}')

let "i++"
done

Receive_average=$(awk 'BEGIN{printf "%.3fMbps\n",('$Receive_result'/5)}')
Transmit_average=$(awk 'BEGIN{printf "%.3fMbps\n",('$Transmit_result'/5)}')
相关推荐
Cloud Traveler11 分钟前
第3天-Jenkins详解-3
运维·分布式·jenkins
rockmelodies44 分钟前
【容器使用】如何使用 docker 和 tar 命令来操作容器镜像
运维·docker·容器
波波烤鸭1 小时前
Netty 在 API 网关中的应用篇(请求转发、限流、路由、负载均衡)
运维·负载均衡
恣艺1 小时前
Redis环境搭建指南:Windows/Linux/Docker多场景安装与配置
linux·windows·redis
打不了嗝 ᥬ᭄1 小时前
【Linux】线程同步与互斥
linux·服务器·c++
MuMuMu#1 小时前
Spring Cloud Gateway基础复习
java·运维·学习
ZYMFZ1 小时前
Linux系统 SELinux 安全管理与故障排查
linux·运维·安全
脚踏实地的大梦想家2 小时前
【Docker】P2 Docker环境构建准备:MacOS 与 Linux
linux·macos·docker
allnlei2 小时前
Keepalived 负载均衡
运维·负载均衡·lvs·keepalived
会飞的土拨鼠呀2 小时前
Debian 操作系统全面介绍
运维·debian