シェルコマンドtop
の出力は、マシンの正常性を大まかに把握するためのシンプルで使い慣れた方法であることがわかりました。大まかな監視の目的で、マシン上の小さなWebサーバーからtop
の出力(またはそれに非常に類似したもの)を提供したいと思います。
文字をフォーマットせずに、テキスト出力を正確にonceに書き込む方法はありますか?私はこれを試しました:
(sleep 1; echo 'q') | top > output.txt
これはcloseのようですが、(1)1画面分以上の情報が得られないという保証はありません。(2)すべて削除する必要があります。端末フォーマット文字。
または、マシン全体とプロセスレベルの両方のメモリ/ CPU使用量/稼働時間の情報を一覧表示する他のtop
のようなコマンドはありますか?
(理想的には、私たちの開発者はMacを使用しており、製品環境はLinuxであるため、LinuxとMac OS Xの両方に移植可能な戦略が大好きです。)
Linuxでは、これを試すことができます:
top -bn1 > output.txt
man top
から:
-b : Batch-mode operation
Starts top in 'Batch' mode, which could be useful for sending
output from top to other programs or to a file. In this
mode, top will not accept input and runs until the iterations
limit you've set with the '-n' command-line option or until
killed.
....
-n : Number-of-iterations limit as: -n number
Specifies the maximum number of iterations, or frames, top
should produce before ending.
OS Xでは、次のことを試してください。
top -l 1
トップOSXマンページ から:
-l <samples>
Use logging mode and display <samples> samples, even if
standard output is a terminal. 0 is treated as infinity.
Rather than redisplaying, output is periodically printed in
raw form. Note that the first sample displayed will have an
invalid %CPU displayed for each process, as it is calculated
using the delta between samples.