私が欲しい効率的な確認するGnu / Linuxの1行コマンド(または一緒にグループ化された複数のコマンド)現在のCPU、RAM、およびハードディスク使用率。
注:私はPythonを使用しています。期待/pxsshそして毎時crontabでスクリプトを実行してください。このスクリプトはsshを実行し、適切なGnu / Linuxコマンドを実行します。
出発点としての現在の試みは次のとおりです。
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)}'`"
注:具体的な予想結果はありません。出力が理解でき、出力がPython辞書に簡単に保存される形式であれば十分です{ "CPU": "3", "RAM": "58", "HDD": 30"}
。
値(3、58、30)は、CPU、RAM、およびハードディスク使用率です。
答え1
これを定期的に実行するには、データの生成を管理する小さなスクリプトを作成することをお勧めします。読みやすく、メンテナンスも簡単です。
#!/bin/bash
#
cpu=$(LC_ALL=C top -bn1 -p0 | awk '/^%Cpu/{print 100-$8}')
mem=$(free -m | awk '/^Mem:/{printf("%3.1f\n", $3/$2 *100)}')
dsk=$(df -h / | awk '$NF=="/"{print $(NF-1)+0}')
printf '{"CPU": "%3.1f", "RAM": "%3.1f", "HDD": "%3.1f"}\n' $cpu $mem $dsk
exit 0
はい
./546179.sh
{"CPU": "53.7", "RAM": "49.3", "HDD": "46.0"}
これらすべてを1行に縮小することを決定した場合は、実行するのは簡単ですが、結果のコードはほとんど読めません。
はい
printf '{"CPU": "%3.1f", "RAM": "%3.1f", "HDD": "%3.1f"}\n' $(LC_ALL=C top -bn1 -p0|awk '/^%Cpu/{print 100-$8}') $(free -m|awk '/^Mem:/{printf("%3.1f\n",$3/$2*100)}') $(df -h /|awk '$NF=="/"{print $(NF-1)+0}')
{"CPU": "53.7", "RAM": "49.3", "HDD": "46.0"}