Linuxの「w」コマンドの出力の「IDLE」列の読み方


11

私は、リモートサーバー上のユーザーセッションを監視し、アイドル状態が長すぎる場合に警告するプロセスを理解しようとしています。これは、Linuxコマンドwが適切です。

問題は- wセッションのアイドル時間を指定するために3つの異なる形式を使用していて、それらを適切に理解できないことです。の出力は次のwようになります。

 11:40:57 up 400 days, 10:46, 13 users,  load average: 5.07, 5.10, 4.83
USER     TTY      FROM           LOGIN@   IDLE   JCPU   PCPU WHAT
john     pts/1    XX.XX.XX.XX   Wed13   22:29m  0.13s  0.04s ssh master-db
june     pts/2    XX.XX.XX.XX   Wed13   46.00s  0.67s  0.13s -bash
jenn     pts/4    XX.XX.XX.XX   11:13   27:47   4.16s  0.11s -bash

ご覧のとおり、IDLEにはユーザーごとに異なる形式があります。

  • 「AA.BBs」は明らかに、コンソールで最後にアクティブになってから、AA秒とBB 1/100秒(6月の場合は46秒)が経過したことを意味します。
  • 「AA:BBm」は、ジョンがセッションで最後にアクティブになってから、AA時間とBB分が経過したことを意味します。
  • 「AA:BB」は私が理解できない形式です-ジェニファーが彼女のセッションでアクティブでなくなってからどのくらいですか?

回答:


4

修飾子がない場合、MM:SS、つまり分と秒全体を意味します。追加のボーナスとして、その出力にはない4番目の形式があります-非アクティブの日数(NNdays)。


10

マニュアルページから

時刻がそれぞれ2日、1時間、または1分を超える場合、標準形式はDDdays、HH:MMm、MM:SSまたはSS.CCです。

したがって、出力はMM:SS(> 1mおよび<1時間)です。


1

あなたの質問に対する答えではありませんが、ログインセッションのアイドル時間を確認する簡単な方法は、/ dev / ptsを調べることです。そこにあるファイルの変更時刻は、ログインセッションが最後に入力を受け取った時刻を反映しています。

そこでstat操作(たとえば、stat --format = "%n%X" *)を実行し、すべてをエポック秒に保つことができるはずです。時間の計算が簡単になります。


1
時間形式を解析していることに気付いた場合は、エポック時間でそのタイムスタンプのソースを探すことをお勧めします。
cjc 2011

1
私はそれについて何かを読みましたが、によって報告されるアイドル時間w/dev/ptsファイルのタイムスタンプとは異なることに気づきました。なぜか?
Guss、2011

どのような状況で違いますか?私はこれを注意深く見ていませんが、「w」はどこかから情報を引き出しているに違いありません。/dev/ptsは明白な場所です。ああ、おそらく画面で何かが起こった場合(/ dev / pts / *は双方向通信でなければなりません); その場合、ユーザーはアイドル状態になりますが、デバイス全体で何かが発生したため、たとえば/ dev / pts / 0が更新されます。
cjc

これはおそらく説明であり、ユーザーのアクティブなログファイルをテーリングしている場合やを使用している場合でもアイドルセッションをシャットダウンしたいため、この方法は無効になりますwatch
Guss、2011

1

答えは27分47秒です

  1. デフォルトの形式はMM:SSです。
  2. 22:29mは22時間29分を意味します
  3. 46.00sは46秒を意味します
  4. 4dは4日を意味します
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.