メモリ使用量、ディスク使用量、CPU負荷を表示するコマンド


15

メモリ使用量、ディスク使用量、CPU負荷を次の形式で表示したい:

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

それ、どうやったら出来るの?


宿題のように見えます。/ proc自体または他のコマンドから必要なデータを取得し、awk、perl、または単にbashでフォーマットします。
ミケバブコック14年

Unix&Linux Stack Exchangeへようこそ!してください、常にあなたのOSが含まれます。多くの場合、ソリューションは使用されているオペレーティングシステムに依存します。Unix、Linux、BSD、OSXなどを使用していますか?どのバージョンですか?
テルドン

助けてくれてありがとう。しかし、私はここに私の答えは得stackoverflow.com/questions/33774260/...
Mohsinイナヤット・カーン

回答:


33

これを試してください、私のDebianシステムで動作します。詳細は、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よさそうだ、投稿してみませんか?
テルドン

3
コピーしたansだけだからです。:D
ラーフルパティル

1
無料の-m行ではエラーが発生し、パーセンテージは適切にエスケープされませんでした。これはどのようにすべきである:free -m | awk 'NR==2{printf "Memory Usage: %s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 }'
サイモン

1
@ user1735921 質問してください。しかし、まず、コマンドの出力を変数に保存する方法をグーグルで調べてください。これは簡単です。次に、保存する内容と質問でテストする内容を説明します。
テルドン

5

上で確認してください。

これを読む、https://lwn.net/Articles/387202/

見る、 ここに画像の説明を入力してください

アプリによるディスク/メモリ/ CPUの負荷を確認できます。

ここに画像の説明を入力してください

たとえば、ディスク使用量:

ここに画像の説明を入力してください

/var/log/atop/1日あたりのバイナリ形式のファイルでディレクトリ内の統計を収集します。あなたはマニュアルページを読むことができます、有用な情報を抽出する方法がなければなりません。


2

特定の形式で正確に表示するコマンドはありませんが、以下はスクリプトを構築できる基本値の一部を提供しますが、代わりに/ procおよび/ sysから値を読み取ることもできます。

free -簡単な概要

vmstat 1 システムパフォーマンスのI / O統計を表示します

top 動的

htop トップに似ています


1
私のお気に入りであるiostatを投入してください。
ミケバブコック14年

0

nagiosのこのプラグイン/ソースはすべて作成されており、nagiosをインストールせずにダウンロードしてテストできるため、nagiosの助けが必要だと思います。



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.