仕事で使うことになったので、備忘録的にメモメモ。LinuxとWindowsでそれぞれCPU, HDD, メモリ使用率を取得して、ログとして都度吐き出す、という簡単なコマンドとその活用法を調べました。
Linux: CPU, メモリ使用率
「top」コマンドで出力可能。オプションは「-d」、コマンドの実行間隔を秒単位で指定できます。以下例。Ctrl+cでコマンドを止めるまで出力を繰り返します。
[root@centos01] # top -d 60 >> top.txt
※topコマンドを60秒間隔で実行し、実行結果を「top.txt」に出力
Linux: HDD使用率
「df」コマンドで出力可能。ただし、「top」と違い、一回動かすと動作を停止してしまうので、繰り返し実行するようシェルスクリプトを書いてあげる必要があります。以下例。
- chkhdd.sh -
while true
do
date >> hdd.txt
df >> hdd.txt
sleep 3600
done
※「while true」で無限ループを作り、3600秒(=1時間)間隔で実行するよう「sleep」を実行、「df」コマンドの出力には日時がないので、「date」コマンドで日時を付加しています。
Windows: CPU使用率
typeperfコマンドを使用します。実行するとPC全体のCPU使用率を取得できます。
C:\> typeperf -sc 1440 -si 60 "\Processor(_Total)\% Processor Time" > typeperf.txt
※1分(60秒)間隔で1日(1440回)実行する場合の記述
Windows: メモリ使用率
tasklistコマンドを使用します。tasklistは単発動作で終了してしまうので、繰り返し実行するようにバッチファイルを書いてあげる必要があります。
- chkmmr.bat -
@echo off
:label01
echo %date% %time%
tasklist
ping localhost -n 10 > nul
goto label01
※10秒間隔で実行する場合の記述。ファイル出力する場合にはバッチファイル実行時、後ろに「 > xxx.log」等ファイル名を記述すること
Windows: HDD使用率
全然知らなかったんですが、「dir」コマンドで指定ディレクトリの空き容量って取れるんですね。今まで散々(たぶん一番)叩いてきたコマンドなのに…。必要なのは一番最後の行だけなので、ログファイル回収後そこだけ別途解析してやればいいと思います。
- chkmmr.bat -
@echo off
:label01
echo %date% %time%
dir C:\
ping localhost -n 10 > nul
goto label01
※10秒間隔で実行する場合の記述。ファイル出力する場合にはバッチファイル実行時、後ろに「 > xxx.log」等ファイル名を記述すること
参考サイト
- Linuxコマンド集 - 【 top 】 現在のシステム状況を表示する:ITpro
- df:Linuxコマンド.com
- while 文の使用方法 | UNIX & Linux コマンド・シェルスクリプト リファレンス
- Tech TIPS:Windowsのtypeperfコマンドでシステムのパフォーマンスカウンタのデータを収集する - @IT
- Because: WindowsでCPU使用率をみるコマンド
- バッチ(TASKLISTコマンド)でWindowsのプロセスを監視 - Windowsを使い倒せ
- [その他開発]wgetで定期的にWeb画面情報を取得する - ミッションたぶんPossible
- Tech TIPS:Windowsのdirコマンドで共有フォルダーの空き容量を調べる - @IT