PSコマンドで起動した時間順にソートする
PSコマンドでプロセスが起動した起動時刻順に並び替える
以前にPSコマンドの記事で「PSコマンドでプロセスの起動時刻を調べる」を書きましたが、サーバを運用していると起動時刻の古い順番でソートしたいケースがあったのでその方法を調べました。
PSコマンドのソートオプション
PSコマンドでは、「–sort spec」、「k spec」のようにすればできます。「spec」で指定した順番にソートされます。
ソートキーは色々あります。pcpuはCPUの使用率、rssはタスクが実行している物理メモリだったりします。詳しくはPSコマンドのManページ内の「標準フォーマット指定子」が参考になると思います。
PSコマンドの起動時間順にソートする場合のオプション
時間別のソートキーは「start_time」です。
オプションを含めると、「–sort start_time」、「kstart_time」とすれば、プロセスが起動した時刻順番でソートできます。
また「–sort -start_time」、「k-start_time」のように、ソートキーの前に「–」をつければば降順にソートされます。起動時間順ですので、この場合は最近のプロセス順となります
以下では、httpd プロセスでソートキーを起動時間として表示しています。起動時間での昇順ですので起動時間が古い順となります
# httpdプロセスの起動時間の古い順で上位5個表示しています(オプションは、--sort start_time) $ ps aux --sort start_time | grep httpd | grep -v grep | head -5 root 10330 0.0 0.0 578736 1364 ? Ss 6月29 1:56 /usr/sbin/httpd -DFOREGROUND apache 21009 0.0 0.0 267880 196 ? S 7月23 0:05 /usr/sbin/httpd -DFOREGROUND apache 30288 0.9 3.8 784528 80468 ? S 10:49 0:36 /usr/sbin/httpd -DFOREGROUND apache 30748 0.6 4.5 784828 95044 ? S 10:53 0:23 /usr/sbin/httpd -DFOREGROUND apache 32115 0.4 3.2 691472 67900 ? S 11:06 0:13 /usr/sbin/httpd -DFOREGROUND # httpdプロセスの起動時間の古い順で上位5個表示しています(オプションは、kstart_time) $ ps -ef kstart_time | grep httpd | grep -v grep | head -5 root 10330 1 0 6月29 ? Ss 1:56 /usr/sbin/httpd -DFOREGROUND apache 21009 10330 0 7月23 ? S 0:05 /usr/sbin/httpd -DFOREGROUND apache 30288 10330 0 10:49 ? S 0:36 /usr/sbin/httpd -DFOREGROUND apache 30748 10330 0 10:53 ? S 0:23 /usr/sbin/httpd -DFOREGROUND apache 32115 10330 0 11:06 ? S 0:13 /usr/sbin/httpd -DFOREGROUND
以下では、httpd プロセスでソートキーを起動時間として表示しています。起動時間での降順ですので起動時間が新しい順となります
# httpdプロセスの起動時間の新しい順で上位5個表示しています(オプションは、--sort -start_time) $ ps aux --sort -start_time | grep httpd | grep -v grep | head -5 apache 3995 0.0 0.3 579700 7328 ? S 11:50 0:00 /usr/sbin/httpd -DFOREGROUND apache 3546 0.4 2.8 593232 60804 ? S 11:48 0:01 /usr/sbin/httpd -DFOREGROUND apache 3543 0.6 2.1 585640 45996 ? S 11:47 0:01 /usr/sbin/httpd -DFOREGROUND apache 3544 0.2 2.1 585500 45748 ? S 11:47 0:00 /usr/sbin/httpd -DFOREGROUND apache 3528 0.7 2.7 692320 57296 ? S 11:47 0:02 /usr/sbin/httpd -DFOREGROUND # httpdプロセスの起動時間の新しい順で上位5個表示しています(オプションは、k-start_time) $ ps -ef k-start_time | grep httpd | grep -v grep | head -5 apache 3995 10330 0 11:50 ? S 0:00 /usr/sbin/httpd -DFOREGROUND apache 3546 10330 0 11:48 ? S 0:01 /usr/sbin/httpd -DFOREGROUND apache 3543 10330 0 11:47 ? S 0:01 /usr/sbin/httpd -DFOREGROUND apache 3544 10330 0 11:47 ? S 0:00 /usr/sbin/httpd -DFOREGROUND apache 3528 10330 0 11:47 ? S 0:02 /usr/sbin/httpd -DFOREGROUND
ディスカッション
コメント一覧
まだ、コメントがありません