Một lớp lót để hiển thị việc sử dụng CPU, RAM và ổ cứng


15

Tôi đã thấy một vài bài đăng muốn giống nhau về cách sử dụng, tuy nhiên câu trả lời LUÔN LUÔN đề cập đến việc cài đặt một số công cụ của bên thứ ba.

Tôi không muốn cài đặt bất cứ thứ gì.

Bất kỳ một lót? Sau đây sẽ là một đầu ra tốt đẹp:

CPU 11% RAM 20% HDD 85%

Là sử dụng ổ cứng bao nhiêu phần trăm nó đầy đủ hoặc bận rộn như thế nào?
Chỉ huy Byte

@ByteCommander Cả hai? :) Trên một lưu ý nghiêm trọng, năng lực mặc dù. Nếu cả hai điều đó sẽ tốt đẹp.
Karl Morrison

Thở dài .......: - /
Chỉ huy Byte

@ByteCommander Theo năng lực Tôi có nghĩa là "nó đầy đủ như thế nào" nếu tôi không rõ ràng :)
Karl Morrison

Câu trả lời:


28

Bạn có thể sử dụng cái này

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)}'`"

Đầu ra là

CPU 7.4% RAM 33.9% HDD 94%

2
phần HD sẽ bị mất nếu bạn có nhiều phân vùng.
coteyr

1
df -h /một phần của dòng lệnh hiển thị số liệu thống kê về /phân vùng. Bạn có thể lặp lại df -hlệnh và thay thế /bằng điểm gắn kết bạn cần theo dõi.
MKay

1
Không làm việc cho tôi. CPU luôn là 91%, tôi không biết nó lấy từ đâu. // Và RAM bao gồm bộ đệm và bộ đệm khiến nó trông như đã cạn kiệt. Tôi sử dụng 97,8% RAM, nhưng vẫn còn 67,5% miễn phí.
Oskar Skog

2
@OskarSkog Bạn topkhông sao. Việc sử dụng CPU không thể được đo tại thời điểm hiện tại, nó phải được đo trong khoảng thời gian ngắn. Khi topchạy lần lặp đầu tiên, nó hiển thị mức sử dụng trung bình kể từ lần khởi động lại cuối cùng. Bắt đầu với lần lặp thứ hai, nó hiển thị mức sử dụng hiện tại kể từ lần lặp trước. Và nếu bạn gặp vấn đề với bản địa hóa, bạn có thể đặt LC_ALL=Ctrước lệnh để sử dụng bản địa hóa tiếng Anh mặc định (định dạng số, v.v., không phải ngôn ngữ).
Chỉ huy Byte

2
@MKay: Bạn có thể muốn thay thế top -bn1 | grep "Cpu(s)"bằng top -bn2 | grep "Cpu(s)" | tail -n1. Cái trước sẽ hiển thị trung bình dài hạn như được chỉ ra bởi Byte Commander.
Oskar Skog

7

Đối với việc sử dụng CPU ( (user+system)/(user+system+idle)thời gian trung bình trên 0,1 giây):

(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)"%"}'

Để sử dụng RAM ( (total-available)/total):

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

Đối với việc sử dụng ổ cứng (chỉ có âm lượng được gắn dưới dạng /):

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

Thật thú vị, có ít bộ nhớ hơn so với những gì `miễn phí -m | đầu -n3 | đuôi -n1 'báo cáo là bộ nhớ miễn phí.
Oskar Skog

@OskarSkog Bạn có thể chia sẻ đầu ra của lệnh đó không? Đối với tôi, nó chỉ đơn giản là in dòng Swap Total / used / free, không liên quan ở đây. Có thể bạn có ý gì khác, hoặc freelệnh của bạn vẫn sử dụng định dạng đầu ra cũ với dòng - / + bộ đệm / bộ đệm riêng biệt ...
Byte Commander

Miễn phí của tôi sử dụng định dạng cũ: oskog97.com/sshin/free-output.png Điều gì đã thay đổi?
Oskar Skog

3
@OskarSkog Dòng "- / + bộ đệm / bộ đệm" đã bị xóa và bây giờ có thêm một cột "có sẵn" trong hàng "Mem". Từ man free: " Ước tính dung lượng bộ nhớ khả dụng để khởi động các ứng dụng mới mà không cần trao đổi. Không giống như dữ liệu được cung cấp bởi bộ đệm hoặc các trường miễn phí, trường này đưa vào bộ đệm trang tài khoản và cũng không phải tất cả các bảng bộ nhớ có thể lấy lại được do các mục đang được sử dụng MemAv Available trong / Proc / meminfo, có sẵn trên các hạt nhân 3.14, được mô phỏng trên các hạt nhân 2.6.27+, nếu không thì giống như miễn phí) "
Chỉ huy Byte
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.