สายการบินเดียวที่แสดงการใช้งาน CPU, RAM และ HDD


15

ฉันเคยเห็นโพสต์ไม่กี่ต้องการที่เหมือนกันเกี่ยวกับการใช้งาน แต่คำตอบเสมออ้างถึงการติดตั้งเครื่องมือของบุคคลที่สาม

ฉันไม่ต้องการติดตั้งอะไร

ผู้ใดตอร์ปิโด? ต่อไปนี้จะเป็นผลลัพธ์ที่ดี:

CPU 11% RAM 20% HDD 85%

การใช้งาน HDD คิดเป็นเปอร์เซ็นต์เต็มหรือยุ่งแค่ไหน
ผู้บัญชาการไบต์

@ ByteCommander ทั้งคู่? :) เมื่อทราบอย่างจริงจังถึงความจุ ถ้าทั้งคู่จะดี
Karl Morrison

เฮ้อ ....... : - /
ผู้บัญชาการ Byte

@ByteCommander ตามความจุที่ผมหมายถึง "วิธีการเต็มรูปแบบมันคือ" ถ้าฉันไม่ได้ชัดเจน :)
คาร์ลมอร์ริสัน

คำตอบ:


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
ส่วน HD จะดูดถ้าคุณมีหลายพาร์ติชัน
coteyr

1
df -h /ส่วนหนึ่งของบรรทัดคำสั่งแสดงสถิติเกี่ยวกับ/พาร์ทิชัน คุณสามารถทำซ้ำdf -hคำสั่งและแทนที่/ด้วยจุดเมานท์ที่คุณต้องการตรวจสอบ
MKay

1
ไม่ได้ผลสำหรับฉัน ซีพียูอยู่เสมอ 91% ฉันไม่รู้ว่ามันมาจากไหน // และ RAM รวมถึงบัฟเฟอร์และแคชทำให้ดูเหมือนว่าหมดแล้ว ฉันใช้ 97.8% RAM แต่ยังคงมี 67.5% ฟรี
Oskar Skog

2
@OskarSkog คุณtopไม่เป็นไร ไม่สามารถวัดการใช้ CPU ได้ ณ เวลาปัจจุบันและต้องวัดในช่วงเวลาสั้น ๆ เมื่อtopเรียกใช้การวนซ้ำครั้งแรกจะแสดงการใช้งานเฉลี่ยตั้งแต่การรีบูตครั้งล่าสุด เริ่มต้นด้วยการทำซ้ำครั้งที่สองมันจะแสดงการใช้งานจริงในปัจจุบันตั้งแต่การทำซ้ำก่อนหน้านี้ และถ้าคุณมีปัญหาเกี่ยวกับการแปลคุณสามารถใส่LC_ALL=Cคำสั่งด้านหน้าเพื่อใช้การแปลภาษาอังกฤษเริ่มต้น (รูปแบบตัวเลข ฯลฯ ไม่ใช่ภาษา)
ผู้บัญชาการไบต์

2
@MKay: คุณอาจต้องการที่จะเปลี่ยนด้วยtop -bn1 | grep "Cpu(s)" top -bn2 | grep "Cpu(s)" | tail -n1อดีตจะแสดงค่าเฉลี่ยระยะยาวตามที่ผู้บัญชาการ Byte ชี้
Oskar Skog

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

@OskarSkog คุณสามารถแบ่งปันผลลัพธ์ของคำสั่งนั้นได้หรือไม่? สำหรับฉันมันแค่พิมพ์ Swap ทั้งหมด / ใช้ / ฟรีบรรทัดซึ่งไม่เกี่ยวข้องที่นี่ บางทีคุณอาจหมายถึงอย่างอื่นหรือfreeคำสั่งของคุณยังคงใช้รูปแบบเอาต์พุตเก่าโดยแยก - / + บัฟเฟอร์ / แคชบรรทัด ...
ผู้บัญชาการ Byte

ฟรีของฉันใช้รูปแบบเก่า: oskog97.com/sshin/free-output.png มีอะไรเปลี่ยนแปลงบ้าง
Oskar Skog

3
@OskarSkog บรรทัด "- / + บัฟเฟอร์ / แคช" ถูกลบแล้วและขณะนี้มีคอลัมน์เพิ่มเติม "ว่าง" ในแถว "Mem" แทน จากman free: " การประเมินจำนวนหน่วยความจำที่พร้อมใช้งานสำหรับการเริ่มต้นแอปพลิเคชันใหม่โดยไม่มีการสลับซึ่งต่างจากข้อมูลที่ให้ไว้โดยแคชหรือเขตข้อมูลว่างเขตข้อมูลนี้จะนำไปใช้กับแคชของหน้าบัญชี อยู่ในการใช้งาน MemAvailable ใน / proc / meminfo มีอยู่ในเมล็ด 3.14 เลียนแบบบนเมล็ด 2.6.27+ มิฉะนั้นจะเหมือนกันฟรี) "
ผู้บัญชาการไบต์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.