60秒ごとに「無料」および「親」出力の一部を記録するbashをサーバーに作成したいと思います。 cronジョブを設定する方法はわかっていますが、「free」と「top」の出力を取得して解析してファイルに保存(追加)する方法はわかりません。
たとえば、「top」を実行すると、次のような部分だけを保存したいと思います。
%CPU:18.2us、
「free」を実行するときは、最初の行(メモリ:)の「available」列だけを保存したいと思います。
それでは、Centos 7でbashをどのように実行しますか?
答え1
1分ごとに監視したい場合は、現在の使用量ではなくCPUの負荷平均を使用することをお勧めします。
cat /proc/loadavg | awk '{print "Load last minute:", $1}'
この行は、最後の瞬間の平均CPU使用率を提供します。これは使用されたCPU比よりも正確です。なぜなら、100%の急増があり、平均使用率がはるかに低くても保存できるからです。
答え2
使用awk
:
top -n 1 | awk '/^%Cpu\(s\)/ {print "%Cpu(s)", $2, "us"}'
free | awk '/^Mem:/ {print $7}'