메모리 사용량, 디스크 사용량 및 CPU로드를 표시하는 명령 싶습니다. Memory Usage: 33/512MB (6%) Disk usage: 4.2/20GB (23%) CPU

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

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

어떻게해야합니까?



답변

이것을 사용해보십시오. 데비안 시스템에서 작동합니다. 세부 사항은 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

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


답변

상단을 확인하십시오 .

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

보다,

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

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

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


답변

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

free – 빠른 개요

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

top 동적

htop 상단과 유사


답변

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


답변

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

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


답변

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

답변

다음을 사용하여 메모리 사용량, 디스크 사용량 및 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)