
topコマンドでバッチモードが使えない。
環境は
MacOSXのSnowLeopard
Darwin Kernel Version 10.4.0
です。
スクリプトで使いたいのでバッチモードが使用できないと困るのですが、
実行したら下記のようなメッセージが出ます。
バッチモードで実行する方法はないでしょうか?
$ top -b
invalid option or syntax: -b
top usage: top
[-a | -d | -e | -c <mode>]
[-F | -f]
[-h]
[-i <interval>]
[-l <samples>]
[-ncols <columns>]
[-o <key>] [-O <secondaryKey>]
[-R | -r]
[-S]
[-s <delay>]
[-n <nprocs>]
[-stats <key(s)>]
[-pid <processid>]
[-user <username>]
[-U <username>]
[-u]
No.4ベストアンサー
- 回答日時:
Mac OS X の top コマンドは動作モードは non-logging(デフォルト) と logging があり、
他のOSでの interactive と batch モードに相当します。
logging モードで起動するには "top -l サンプリング数" のように指定します。
> $ top < /dev/null | grep ^Load
> でLoadが先頭にある行だけを取れるはずなんですけど、
> 何も取れません。
top を non-loggingモードで動かすと、画面制御コードが混ざったものが標準出力に流れるので、テキスト行指向の grep では引っかからないことも起こるでしょう。
パイプに繋ぐならば、logging モードを明示的に指定すべきです。
% top -l 1 |grep '^Load'
Load Avg: 0.40, 0.46, 0.48
今回のように 同じ top という名前のコマンドでも、OS によって挙動の違うものになっていることもままあります。
特定のコマンドに関することならば、そのコマンドのマニュアルに最初に当たるべきでしょう。
コマンド組み合わせて望みの動作をさせる方法を身につけたいということならば、UNIX の入門書やシェルの解説本を読み通して、定番の技法を知っておくのが良いと思います。
No.3
- 回答日時:
> Load Avgの行にあるCPU使用率やPhysMemの行にある情報を知りたいのです。
なるほど。そのあたりの話を、前回の質問で補足にでも書いていただければ話が早かったのですが…
> こうゆうコマンドの使い方はどうやって調べたらたどり着くのですか?
> qはつけてもつけなくても結果は一緒でしたが、何のqなんでしょうか?
top コマンドは「qキーで終了」するので、その「q」です。
ユーザーの操作で「qを押す」かわりに、リダイレクトで「q」を送り込めばいいだろう、
というだけの思いつきです。
こちらで試したところ、qを送らなくてもいいというか、
入力がリダイレクトされていた場合、入力が終わった時点でtopは終了するようですので、
単に
top < /dev/null | grep …
で十分だと思います。
本当にありがとうございます。
すいません。もうひとつ質問させてください。
$ top < /dev/null | grep ^Load
でLoadが先頭にある行だけを取れるはずなんですけど、
何も取れません。
正規表現が使えないのかよくわからないですが、
1行だけ抜き出す方法はないでしょうか?
No.2
- 回答日時:
前回の同様な質問に対しての回答と同じですが、
ロードアベレージを知りたいだけなら、uptime コマンドでは何故ダメなのでしょうか?
uptime コマンドは、ロードアベレージを表示するためのコマンドです。
ロードアベレージを知りたいのにtopコマンドを使うのは
無意味にプロセス情報を取ったりして無駄が多すぎます。
それでも、どうしても uptime コマンドではなく、top コマンドにこだわるのでしたら、
echo q | top
ではどうですか?
ありがとうございます。
ロードアベレージを知りたいんじゃなくて、
Load Avgの行にあるCPU使用率やPhysMemの行にある情報を知りたいのです。
echo q | top はまさにやりたかったことです。
こうゆうコマンドの使い方はどうやって調べたらたどり着くのですか?
qはつけてもつけなくても結果は一緒でしたが、何のqなんでしょうか?
何はともあれありがとうございました。
No.1
- 回答日時:
>$ top -b
>invalid option or syntax: -b
エラーメッセージも表示されているのに、ここで質問している質問者様が使うコマンドではないと思います。 もう少し勉強してからご利用下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワイルドカードを使ってでフォ...
-
shutdownコマンドをキャンセル...
-
[バッチファイル]レジストリ値...
-
compressコマンドってなくなっ...
-
Excel下部のメニューが消えた
-
grep 検索 検索対象の行と、そ...
-
echo $!の意味を教えてください
-
「環境変数名の編集」ウィンド...
-
Solarisでiノード数を確認する...
-
VBAを使って電源を切るには?
-
外部コマンド、組み込みコマン...
-
mv コマンドのエラーコード
-
@EOD
-
browstat を実行したい
-
gemコマンド yumコマンド
-
コマンドプロンプトでの作業ロ...
-
コマンドを打ち終えたた後は
-
dig/host/nslookup コマンド...
-
windowsでcatコマンド
-
Linuxコマンドは何の言語で書か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
shutdownコマンドをキャンセル...
-
UNIX コマンドにおける # や円...
-
至急です、Ubuntuに詳しい方助...
-
ワイルドカードを使ってでフォ...
-
SCコマンドでアクセス拒否
-
コマンドプロンプトにおけるコ...
-
Linuxコマンドは何の言語で書か...
-
compressコマンドってなくなっ...
-
[バッチファイル]レジストリ値...
-
Excel下部のメニューが消えた
-
AIXでの文字コード、改行コード...
-
vbaで「最前面に」とする方法は?
-
Linuxでコマンドが終了しない
-
「環境変数名の編集」ウィンド...
-
UNIXのコマンドが使えないんです
-
アクセスのボタンから指定のワ...
-
JP1での保留Job一覧取得につき...
-
windows10を使っています。 wsl...
-
Solarisでiノード数を確認する...
-
レコーダー換装用のHDDのAVコマ...
おすすめ情報