#!/bin/bash export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin #设置字符集 export.UTF-8 date_=$(date "+%Y-%m-%d %H:%M:%S") #CPU监控信息获取 #Cpu total cpu_total=$(grep "cpu " /proc/stat | awk -F ' ' '{total = $2 + $3 + $4 + $5} END {print total}') #Cpu idle cpu_idle=$(grep "cpu " /proc/stat | awk -F ' ' '{total = $2 + $3 + $4 + $5} END {print $5}') #Cpu used cpu_used=$(grep "cpu " /proc/stat | awk -F ' ' '{total = $2 + $3 + $4 + $5} END {print $5}') #Cpu userd_rate cpu_used_rate=$(echo "$cpu_used $cpu_total" |awk '{printf("%.4f",$1/$2)}') #内存监控信息获取 #Mem total #mem_total=$(free|sed -n '2p'|awk -F ' ' '{print $2}') mem_total=`awk '/MemTotal/{total=$2}END{print (total)/1024 "MB"}' /proc/meminfo` #Mem free mem_free=$(free|sed -n '2p'|awk -F ' ' '{print $4}') #Mem used #mem_used=$(free|sed -n '2p'|awk -F ' ' '{print $3}') #mem_used_procedure=`awk '/MemTotal/{total=$2}/MemFree/{free=$2}/Buffers/{buffers=$2}/^Cached/{cached=$2}END{print (total-free-buffers-cached)/1024 "MB"}' /proc/meminfo` #某个进程占用内存信息获取 PID=`ps -ef | grep "进程" | grep -v grep | awk '{print $2}'` mem_used_procedure=`cat /proc/${PID}/smaps | grep '^Rss' | awk '{sum +=$2} END {print sum/1024}'` mem_used=`awk '/MemTotal/{total=$2}/MemFree/{free=$2}END{print (total-free)/1024 "MB"}' /proc/meminfo` #Mem used_rate mem_used_rate=$(echo "$mem_used $mem_total" |awk '{printf("%.4f",$1/$2)}') #磁盘监控信息获取 #Disk total disk_total=$(fdisk -l | grep "Disk /dev/sd" | awk -F '[ :,]+' '{printf "%.0f\n",$5/1072741824}' | awk -v total=0 '{total+=$1}END{printf "%.0f\t",total}'|awk '{print $1}') #Disk used disk_used=$(df -k | grep -v "tmpfs" | egrep -A 1 "mapper|sd" | awk 'NF>1{print $(NF-3)}' | awk -v used=0 '{used+=$1}END{printf "%.2f\n",used/1048576}') #Disk free disk_free=$(echo "$disk_used $disk_total" |awk '{printf("%.2f",$2-$1)}') #Disk used_rate disk_used_rate=$(echo "$disk_used $disk_total" |awk '{printf("%.4f",$1/$2)}') #负载 load1=`cat /proc/loadavg | awk '{print $1}'` load5=`cat /proc/loadavg | awk '{print $2}'` load15=`cat /proc/loadavg | awk '{print $3}'` #输出成josn格式: echo "{'CPU_total':'$cpu_total','CPU_idle':'$cpu_idle','CPU_used':'$cpu_used','CPU_used_rate':'$cpu_used_rate','mem_total':'$mem_total','mem_free':'$mem_free','mem_used_procedure':'$mem_used_procedure','mem_used':'$mem_used','mem_used_rate':'$mem_used_rate','disk_total':'$disk_total','disk_used':'$disk_used','disk_free':'$disk_free','disk_used_rate':'$disk_used_rate','load1':'$load1','load5':'$load5','load15':'$load15','time':'$date_'}"
Shell 脚本采集系统资源:CPU,负载,内存,磁盘
于 2023-12-21 16:10:36 首次发布