获取每个CPU占用率
命令
a时刻运行
1
| cat /proc/stat | grep cpu
|
类似如下输出
1 2 3
| cpu 79076 58 18232 14519593 5104 0 1275 0 0 0 cpu0 42156 31 9460 7258476 2980 0 666 0 0 0 cpu1 36920 27 8772 7261116 2124 0 609 0 0 0
|
b时刻再次运行,如下输出
1 2 3
| cpu 80076 68 19232 14529593 6104 0 1375 0 0 0 cpu0 43156 41 10460 7268476 3980 0 766 0 0 0 cpu1 37920 37 9772 7271116 3124 0 709 0 0 0
|
解释
第一行是总的(所有核心)信息,除第一行,其他行是单个核心的信息。
第一列,是CPU的ID。cpu0就是第0个CPU。随后每一列分别是user、sys、nice、idle,iowait、irq、softirq的数值,可以计算获得占用率。
计算
例如:求a至b时刻间,cpu0的user占用率
a时刻
1 2 3 4
| user(a, cpu0) = 42156 total(a, cpu0) = user(a) + sys(a) + nice(a) + idle(a) + iowait(a) + irq(a) + softirq(a) = 42156+31+9460+7258476+2980+0+666 = 7313769
|
b时刻
1 2 3 4
| user(b, cpu0) = 43156 total(b, cpu0) = user(a) + sys(a) + nice(a) + idle(a) + iowait(a) + irq(a) + softirq(a) = 43156+41+10460+7268476+3980+0+766 = 7326879
|
结果
1 2 3 4
| user(b-a, cpu0) = [user(b, cpu0) - user(a, cpu0)] / [total(b, cpu0) - total(b, cpu0)] = (43156 - 42156) / (7326879 - 7313769) = 1000 / 13110 = 7.62%
|
获取网速
命令
运行cat /proc/net/dev
,会输出类似如下的结果
1 2 3 4 5
| Inter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed lo: 62626508 187194 0 0 0 0 0 0 62626508 187194 0 0 0 0 0 0 eth0: 755077911 850858 0 0 0 0 0 0 62014432 411931 0 0 0 0 0 0 tailscale0: 4271238 5215 0 0 0 0 0 0 389131 4284 0 0 0 0 0 0
|
解释
第一行指接口|接收|发送
第二行指具体的类型,是bytes还是packets
前两行以下的每一行:
最左边是每个network interface
的名称。lo
代表127.0.0.1,即localhost
,eth0
是网卡1,tailscale
是一个虚拟网卡。
随后就是字节、包的数量等。
计算方法
例:在时间a秒时,获取到lo的数据,receive部分bytes值为c,b秒时lo的receive部分bytes值为d,则
lo的网速=(d-c)/(b-a)
,单位bytes/s
获取发行版
1
| cat /etc/os-release | grep PRETTY_NAME
|
类似输出:
1
| PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
|
获取CPU温度
1
| paste <(cat /sys/class/thermal/thermal_zone*/type) <(cat /sys/class/thermal/thermal_zone*/temp) | column -s $'\t' -t | sed 's/\(.\)..$/.\1°C/'
|
如果类似以下输出,则无法获取
1 2
| zsh: no matches found: /sys/class/thermal/thermal_zone*/temp zsh: no matches found: /sys/class/thermal/thermal_zone*/type
|
成功的话,会获取类似如下输出
1 2
| x86_pkg_temp 47.0??C x86_pkg_temp 44.0??C
|
获取硬盘
会有类似以下输出
1 2 3 4 5 6 7
| Filesystem Size Used Avail Use% Mounted on udev 843M 0 843M 0% /dev tmpfs 173M 464K 173M 1% /run /dev/vda1 30G 4.6G 24G 16% / tmpfs 864M 0 864M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 173M 0 173M 0% /run/user/0
|
获取开机时间
会有类似以下输出
1
| 16:14:47 up 20:17, 0 users, load average: 0.00, 0.00, 0.00
|
获取内存信息
会有类似以下输出
1 2 3
| total used free shared buff/cache available Mem: 1726 388 475 1 862 1154 Swap: 0 0 0
|