web-dev-qa-db-ja.com

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

私は、リモートサーバー上のユーザーセッションを監視し、アイドル状態が長すぎる場合に警告するプロセスを理解しようとしています。これは、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"は私が理解できない形式です-ジェニファーが彼女のセッションでアクティブでない期間はどのくらいですか?
11
Guss

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

4
womble

マニュアルページから

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

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

10
user9517

答えは27分47秒です

  1. デフォルトの形式はMM:SSです。
  2. 22:29mは22時間29分を意味します
  3. 46.00sは46秒を意味します
  4. 4dは4日を意味します
1
Kexin Z

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

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

1
cjc