- PR -

topコマンドで優先度(PRI列)をソートする方法

1
投稿者投稿内容
ルアー
会議室デビュー日: 2006/06/21
投稿数: 4
投稿日時: 2008-11-10 16:49
お世話になります。
現在、topコマンドを使用して出力結果を全て表示させ、加えて
優先度(PRI列)をソートして表示させたいと考えております。
※特に優先度が「RT」のプロセスを上から順にソートしたいと考えております。

この件で調査をし、コマンド[top]を実行して、対話的にコマンドを入力し
優先度(PRI列)をソートする手順は確認できました。

但し今回実行したいのは、topコマンドをシェルとして作成し
crontabに登録して1分間隔で実行しようとしています。この場合、対話式では
対応できないので別の方法があればと調査しています。

topコマンドで優先度をソートする方法をご存じの方がいらっしゃいましたら
ご教示いただけないでしょうか?

宜しくお願い致します。

【可能であればshellに登録したいtopコマンド】
起動間隔:1分おき
コマンド:top -b -n 1 

※topの出力結果を1回表示して終了する
 

【環境】
OS:RHEL5.1

[ メッセージ編集済み 編集者: ルアー 編集日時 2008-11-10 16:52 ]

[ メッセージ編集済み 編集者: ルアー 編集日時 2008-11-10 16:53 ]
ゆっぽ
常連さん
会議室デビュー日: 2006/02/15
投稿数: 40
投稿日時: 2008-11-10 17:37
バッチモードでは、PRIではソートできないです。

ソートしたければ、sedやsplitやcat等々を使用するしかないですかね。。。

かなり適当ですけど、こんな感じでしょうか?
汚いので、書き直してください。。。

#!/bin/bash
top -bn 1 > top_all.txt
### 最初の11行抜き出し
sed -n '1,11p' top_all.txt > top_front.txt
### 最初の11行以外を抜き出し
sed '1,11d' top_all.txt > top_end.txt
### sortする。
sort +2n top_end.txt > top_end_sort.txt
### マージする。
cat top_front.txt top_end_sort.txt > top_all_sort.txt

_________________
############################################
【OpenLaszlo】っておもしろいなぁ。
ルアー
会議室デビュー日: 2006/06/21
投稿数: 4
投稿日時: 2008-11-13 20:59
ゆっぽさん

ご連絡ありがとうございます!
提供頂いた情報をすぐ確認したいのですが
諸事情によりすぐに確認できない状況になってしまいました。

また、提供いただいた情報を確認した後、追ってご連絡します
どうもありがとうございます!
1

スキルアップ/キャリアアップ(JOB@IT)