内存使用情况:
free -m
-m的意思是用MB的方式显示内存大小
CPU使用率:
top
指定行:top -bn1 | grep "Cpu(s)" ,-bn1 仅输出一次
网络相关:
查看网口:ip -o -4 route show to default | awk '{print $5}'
ip: 这是一个用于显示和操作路由、网络设备、隧道和其他网络接口的命令。
-o: 以单行输出格式显示结果(oneline)。
-4: 仅显示IPv4路由。
route show to default: 显示到默认网关的路由信息。
本机测试的话可以: echo $(ip -o -4 route show to default | awk '{print $5}')
下行流量查看:cat /sys/class/net/$network_interface/statistics/rx_bytes
上行流量查看: cat /sys/class/net/$network_interface/statistics/tx_bytes
其中,$network_interface为网口,rx_bytes是接收的流量,也就是下行流量,tx_bytes是上传的流量,也就是上行流量,单位为MB
命令和一些解释:
获取内存使用情况
memory_usage=$(free -m | awk 'NR==2{printf "内存使用率: %.2f%%\n", $3*100/$2 }')
这段代码的作用是获取内存使用率,并将其格式化为百分比。具体步骤如下:
free -m:显示系统的内存使用情况,以MB为单位。awk 'NR==2{printf "内存使用率: %.2f%%\n", $3*100/$2 }':处理free -m的输出,NR==2表示只处理第二行(即物理内存的使用情况),$3表示已使用的内存,$2表示总内存,$3*100/$2计算内存使用率,并格式化为百分比。
获取CPU使用率
cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print "CPU使用率: " 100 - $8 "%"}')
这段代码的作用是获取CPU使用率,并将其格式化为百分比。具体步骤如下:
top -bn1:以批处理模式运行top命令,并仅输出一次。grep "Cpu(s)":过滤出包含CPU使用情况的行。awk '{print "CPU使用率: " 100 - $8 "%"}':处理top的输出,$8表示空闲CPU百分比,100 - $8计算CPU使用率,并格式化为百分比。
top命令的一些解释
在top命令的输出中,%Cpu(s)行显示了CPU的使用情况。各个字段的含义如下
%Cpu(s): 12.5 us, 12.5 sy, 0.0 ni, 68.8 id, 0.0 wa, 0.0 hi, 0.0 si, 6.2 st
其中%Cpu(s)是1,12.5是2,us是3……以此类推,用于$参数的使用,如
top -bn1 | grep “Cpu(s)” | awk ‘{print “CPU使用率: ” 100 – $8 “%”}’
us(user): 用户空间占用的CPU百分比sy(system): 内核空间占用的CPU百分比ni(nice): 改变过优先级的进程占用的CPU百分比id(idle): 空闲CPU百分比wa(iowait): 等待I/O操作的CPU百分比hi(hardware interrupts): 硬件中断占用的CPU百分比si(software interrupts): 软件中断占用的CPU百分比st(steal time): 被其他虚拟机占用的CPU百分比