一根衬垫显示CPU,RAM和HDD的使用情况


15

我看过几篇关于用法的文章,希望得到同样的答案,但是答案总是指安装一些第三方工具。

我不想安装任何东西。

有一个班轮吗?以下将是一个不错的输出:

CPU 11% RAM 20% HDD 85%

HDD的使用率是满还是满的百分比?
字节指挥官

@ByteCommander两者吗?:)值得一提的是,虽然容量。如果两者都很好。
莫里森

叹……
字节指挥官

@ByteCommander按容量,我的意思是“如果没有弄清楚,它有多满:”)
Karl Morrison

Answers:


29

你可以用这个

echo "CPU `LC_ALL=C top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}'`% RAM `free -m | awk '/Mem:/ { printf("%3.1f%%", $3/$2*100) }'` HDD `df -h / | awk '/\// {print $(NF-1)}'`"

输出是

CPU 7.4% RAM 33.9% HDD 94%

2
如果您有很多分区,高清部分会很烂。
coteyr

1
df -h /命令行的一部分显示有关/分区的统计信息。您可以重复df -h命令并替换/为需要监视的安装点。
MKay

1
对我不起作用。CPU总是91%,我不知道它从哪里得到。// RAM包含缓冲区和缓存,使它看起来像已经用完了。我确实使用97.8%的RAM,但仍有67.5%的可用空间。
Oskar Skog's

2
@OskarSkog您top还好。无法在当前时间点测量CPU使用率,必须在较短的时间跨度内测量它。当top运行第一次迭代中,它显示自上次重启的平均使用率。从第二次迭代开始,它显示自上一次迭代以来的实际当前使用情况。而且,如果您对本地化有疑问,则可以LC_ALL=C在命令前面使用默认的英语本地化(数字格式等,而不是语言)。
字节指挥官

2
@MKay:您可能希望替换top -bn1 | grep "Cpu(s)"top -bn2 | grep "Cpu(s)" | tail -n1。前者将显示Byte Commander指出的长期平均值。
奥斯卡·斯科格

7

对于CPU使用率(平均(user+system)/(user+system+idle)超过0.1秒的时间):

(grep 'cpu ' /proc/stat;sleep 0.1;grep 'cpu ' /proc/stat)|awk -v RS="" '{print "CPU "($13-$2+$15-$4)*100/($13-$2+$15-$4+$16-$5)"%"}'

对于RAM使用情况((total-available)/total):

awk '/MemTotal/{t=$2}/MemAvailable/{a=$2}END{print 100-100*a/t"%"}' /proc/meminfo

对于HDD使用(仅以方式安装的卷/):

df | awk '/ \/$/{print "HDD "$5}'

有趣的是,可用内存比`free -m |少。头-n3 | tail -n1'报告为可用内存。
Oskar Skog's

@OskarSkog您可以共享该命令的输出吗?对我来说,它仅显示“交换总计/已使用/可用”行,这与此处无关。也许您是在说别的东西,或者您的free命令仍然使用带有单独的-/ +缓冲区/缓存行的旧输出格式...
Byte Commander

我的免费版使用旧格式:oskog97.com/sshin/free-output.png发生了 什么变化?
奥斯卡·斯科格

3
@OskarSkog删除了“-/ +缓冲区/缓存”行,现在在“ Mem”行中有一个附加列“ available”。来自man free:“ 估计无需启动即可启动新应用程序的可用内存量。与高速缓存或空闲字段提供的数据不同,此字段考虑了页面高速缓存,并且由于项目的原因,并非所有可回收的内存平板都将被回收在/ proc / meminfo中正在使用MemAvailable,可在内核3.14上使用,在2.6.27+内核上进行仿真,否则与free相同)
Byte Commander
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.