監視スクリプトを作成しています。特定のマシンで実行していますが、正常に動作します。単一のディストリビューションに限定されず、複数の Linux マシンで実行する予定です。
私が実行するコマンドと関連する処理は次のとおりです:
1) CPU 使用率:
top -bn 2 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1"%"}'
92%
93%
両方の値をログに記録します。
2) RAM使用量
free -m
_____total used free shared buff/cache available <br>
Mem 3791 1183 875 16 1732 2326 <br>
Swap 3071 0 3071
メモリとスワップの使用量/合計をログに記録する
3) ディスク使用量:
df
(列 2 と 3 のみを保持します。列 2 はそれぞれ 1024 ビット ブロックの合計数、列 3 は使用済みブロックです) :
1K_blocks used_blocks
27740944 1996820
1931168 0
1941352 0
1941352 16904
1941352 0
508588 151576
388272 0
両方の列の合計を比較して、全体のディスク容量を取得します。
4) 稼働時間:
PS C:\> invoke-sshcommand -ComputerName $ip {uptime}
09:39:01 up 13 days, 21:37, 1 user, load average: 0,00, 0,01, 0,05
この文字列を切り取り、有用なデータを記録します。
これらのコマンドは、Linux ディストリビューションに関係なく、まったく同じ形式の出力を生成しますか? もっと一般的に言えば、コマンド + データ処理はどのディストリビューションでも有効でしょうか?
答え1
これらのコマンドは、Linux ディストリビューションに関係なく、まったく同じ形式の出力を生成しますか?
おそらくそうなるでしょうが、確信は持てません。
Linuxディストリビューションは数百種類あります(ディストリビューションウォッチ280個あります)そして、1つのスクリプトが1つでも機能するという保証はありません。続く特に POSIX 以外のオプションやフラグを使用している場合は、別のものでも動作します。
コマンドからの出力に頼るのではなく、疑似ファイルシステムから直接データを取得する必要があります/proc
。