ログイン無料とトップ

ログイン無料とトップ

サーバー上に bash を作成し、60 秒ごとに「free」と「top」の出力の一部をログに記録したいと考えています。cron ジョブの設定方法はわかっていますが、「free」と「top」の出力を取得して解析し、ファイルに保存 (追加) する方法がわかりません。

たとえば、「top」を実行するときに、次の部分だけを保存したいとします。

%CPU: 18.2 us、

そして、「free」を実行するときは、最初の行 (Mem:) の「available」列のみを保存したいと思います。

では CentOS 7 で bash を実行するにはどうすればいいのでしょうか?

答え1

1 分ごとに監視する場合は、現在の使用率ではなく、CPU の負荷平均を使用することをお勧めします。

cat /proc/loadavg | awk '{print "Load last minute:", $1}'

この行には、過去 1 分間の平均 CPU 使用率が示されます。これは、平均使用率がはるかに低い場合でも、ピークが 100% になり、それを保存できるため、%CPU 使用率よりも正確です。

答え2

使用方法awk:

top -n 1 | awk '/^%Cpu\(s\)/ {print "%Cpu(s)", $2, "us"}'
free | awk '/^Mem:/ {print $7}'

関連情報