메모리 사용량, 디스크 사용량 및 CPU로드를 표시하는 명령


16

메모리 사용, 디스크 사용 및 CPU로드를 다음 형식으로 표시하고 싶습니다.

Memory Usage: 33/512MB (6%)    
Disk usage: 4.2/20GB (23%) 
CPU Load: 0.01

어떻게해야합니까?


숙제처럼 보입니다. / proc 자체 또는 다른 명령에서 필요한 데이터를 가져온 다음 awk, perl 또는 bash로 포맷하십시오.
mikebabcock

유닉스 및 리눅스 스택 교환에 오신 것을 환영합니다! 제발 항상 당신의 OS를 포함한다. 솔루션은 종종 사용중인 운영 체제에 따라 다릅니다. 유닉스, 리눅스, BSD, OSX 등을 사용하고 있습니까? 어떤 버전?
terdon

도와 주셔서 감사합니다. 그러나, 나는 여기에 내 대답을 얻었다 stackoverflow.com/questions/33774260/...
Mohsin 인아 얏 칸에게

답변:


33

이것을 사용해보십시오. 데비안 시스템에서 작동합니다. 세부 사항은 OS에서 사용하는 이러한 도구의 구현에 따라 다를 수 있습니다.

#!/bin/sh
free -m | awk 'NR==2{printf "Memory Usage: %s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 }'
df -h | awk '$NF=="/"{printf "Disk Usage: %d/%dGB (%s)\n", $3,$2,$5}'
top -bn1 | grep load | awk '{printf "CPU Load: %.2f\n", $(NF-2)}' 

위의 내용을 스크립트로 저장하고 실행하면 (예를 들어 내 시스템에서) 얻을 수 있습니다.

$ ./foo.sh 
Memory Usage: 4986/7994MB (62.37%)
Disk Usage: 23/68GB (35%)
CPU Load: 0.78

위의 스크립트는 /파티션 의 디스크 사용량을 나타 냅니다. 당신이 원하는 것을 지정하지 않았으므로 그게 당신이 따르는 것 같아요.



@RahulPatil은 좋아 보인다, 왜 게시하지 않습니까?
terdon

3
그것은 단지 당신의 복사 된 ans이기 때문입니다. : D
Rahul Patil

1
free -m 줄에 오류가 발생하고 백분율이 올바르게 이스케이프되지 않았습니다. 이것은 다음과 같습니다 :free -m | awk 'NR==2{printf "Memory Usage: %s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 }'
simon

1
@ user1735921 질문하십시오 . 그러나 먼저 Google은 명령의 출력을 변수에 저장하는 방법을 간단합니다. 그런 다음 질문에 저장할 항목과 테스트하려는 항목을 설명하십시오.
terdon

5

상단을 확인하십시오 .

이것을 읽으십시오, https://lwn.net/Articles/387202/

보다, 여기에 이미지 설명을 입력하십시오

앱별로 디스크 / 메모리 / CPU의로드를 볼 수 있습니다.

여기에 이미지 설명을 입력하십시오

예를 들어, 디스크 사용량 :

여기에 이미지 설명을 입력하십시오

디렉토리 /var/log/atop/에 통계를 수집하여 하루에 이진 형식 파일로 표시합니다. 매뉴얼 페이지를 읽을 수 있으며 유용한 정보를 추출 할 수있는 방법이 있어야합니다.


2

특정 형식으로 정확하게 표시하는 명령은 없지만 다음은 기본 값 중 일부를 제공하며 스크립트를 빌드 할 수있는 대안으로 / proc 및 / sys에서 값을 읽을 수도 있습니다.

free - 빠른 개요

vmstat 1 시스템 성능 I / O 통계 표시

top 동적

htop 상단과 유사


1
내가 가장 좋아하는 iostat를 던져라.
mikebabcock

0

nagios의 도움이 필요하다고 생각합니다. nagios의 모든 플러그인 / 서명자가 이미 만들어 졌으므로 nagios 설치없이 다운로드하여 테스트 할 수 있습니다.


0

solaris를 사용하는 경우 다음을 확인하십시오. showcpucount를

이렇게하면 코드 작성 방법을 알 수 있습니다.


블로그가 더 이상 존재하지 않습니다.
Jay Elston

0

CPU 및 RAM 사용에 대한 코드는 다음과 같습니다.

### 1. get total average CPU usage for the past minute
avg_cpu_use=$(uptime)
# a. split response
IFS=',' read -ra avg_cpu_use_arr <<< "$avg_cpu_use"
# b. find cpu usage
avg_cpu_use=""
for i in "${avg_cpu_use_arr[@]}"; do :
    if [[ $i == *"load average"* ]]; then
        avg_cpu_use=$i
        break       
    fi
done
# c. create response
avg_cpu_use=$(echo ${avg_cpu_use:16})   # Remove "  load average: "
if [[ -z "${avg_cpu_use// }" ]]; then
    avg_cpu_use="CPU: N/A%%"
    exit -1
else
    avg_cpu_use="CPU: ${avg_cpu_use}%%"
fi

### 2. get RAM usage
ram_use=$(free -m)
# a. split response by new lines
IFS=$'\n' read -rd '' -a ram_use_arr <<< "$ram_use"
# b. remove extra spaces
ram_use="${ram_use_arr[1]}"
ram_use=$(echo "$ram_use" | tr -s " ")
# c. split response by spaces
IFS=' ' read -ra ram_use_arr <<< "$ram_use"
# d. get variables
total_ram="${ram_use_arr[1]}"
ram_use="${ram_use_arr[2]}"
# e. create response
ram_use="RAM: ${ram_use}/${total_ram} MB"

echo $avg_cpu_use
echo $ram_use

-2

다음을 사용하여 메모리 사용량, 디스크 사용량 및 CPU로드를 표시 할 수 있어야합니다.

(ps hax -o rss,user | awk '{a[$2]+=$1;}END{for(i in a)print i" "int(a[i]/1024+0.5);}' | sort -rnk2)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.