「last」コマンドの列の意味

「last」コマンドの列の意味

定期的に再起動するサーバーを調査していたとき、「last」ユーティリティを調べ始めましたが、問題は列が正確に何を意味するのか見つけられないことです。もちろん、man を調べましたが、この情報は含まれていません。

root@webservice1:/etc# last reboot   
reboot   system boot  3.2.13-grsec-xxx Thu Apr 12 09:44 - 09:58  (00:13)    
reboot   system boot  3.2.13-grsec-xxx Thu Apr 12 09:34 - 09:43  (00:08)    
reboot   system boot  3.2.13-grsec-xxx Thu Apr 12 09:19 - 09:33  (00:13)    
reboot   system boot  3.2.13-grsec-xxx Thu Apr 12 08:51 - 09:17  (00:25)    
reboot   system boot  3.2.13-grsec-xxx Thu Apr 12 00:11 - 09:17  (09:05)    
reboot   system boot  3.2.13-grsec-xxx Wed Apr 11 19:40 - 09:17  (13:36)    
reboot   system boot  3.2.13-grsec-xxx Sun Apr  8 22:06 - 09:17 (3+11:10)   
reboot   system boot  3.2.13-grsec-xxx Sat Apr  7 14:31 - 09:17 (4+18:45)   
reboot   system boot  3.2.13-grsec-xxx Fri Apr  6 10:20 - 09:17 (5+22:56)   
reboot   system boot  3.2.13-grsec-xxx Thu Apr  5 00:16 - 09:17 (7+09:01)   
reboot   system boot  3.2.13-grsec-xxx Tue Apr  3 07:34 - 09:17 (9+01:42)   
reboot   system boot  3.2.13-grsec-xxx Tue Apr  3 02:31 - 09:17 (9+06:45)   
reboot   system boot  3.2.13-grsec-xxx Mon Apr  2 23:17 - 09:17 (9+09:59)   

最初の列は、含まれているカーネルのバージョンまで意味を成します。これらの時間は正確には何を表していますか? 最後の列は稼働時間のようです。

次に、このサーバーは 24 時間 365 日稼働しているはずですが、時間が一致していないようです。これは、ダウンタイムまたはそれに類似する状況が発生していることを意味します。たとえば、最後の 2 行を見ると、サーバーが 4 月 2 日 9:17 から 4 月 3 日 2:31 までオフになっていたことを意味しますか?

背景情報については、これは Debian Squeeze サーバーです。

編集

最後の列が開始時間、停止時間、稼働時間である場合、これらの 2 行をどのように解釈すればよいでしょうか。

reboot   system boot  3.2.13-grsec-xxx Tue Apr  3 07:34 - 09:17 (9+01:42)   
reboot   system boot  3.2.13-grsec-xxx Tue Apr  3 02:31 - 09:17 (9+06:45)   

2 番目のセッションは最初のセッションの開始後に終了するようです。これは私には意味がわかりません。

答え1

これは 3 年前の投稿だと思いますが、つい最近私がしたように、将来この投稿に偶然出会う他の人のために、とにかく返信します。

他の投稿を読んだり、自分で一定期間出力を監視したりしたところ、各行にはセッションの開始日時、終了時間(終了日ではない)、セッションの継続時間(ログインしていた時間)が次のような形式で表示されているようです。

(日数+時間:分)

再起動ユーザーは、システムが起動されるたびにログインし、システムが再起動またはシャットダウンされたときにログオフしたことが記録されているようです。これらの行の「セッション期間」情報は、「セッション」が継続した時間の長さ (日数 + 時間:分)、つまり、システムがシャットダウンされる前に起動していた時間です。

私の場合、最新の再起動エントリには「ログオフ」時間として現在の時刻が表示され、そのエントリのセッション期間データは現在の稼働時間の出力と一致します。

つまり、この行では:

システムを再起動 boot 3.2.13-grsec-xxx 火 4月 3日 07:34 - 09:17 (9+01:42)

システムは 4 月 3 日火曜日の午前 7 時 34 分に起動され、9 日と 1 時間 42 分後 (4 月 12 日) の午前 9 時 17 分にシャットダウンされました。 (または、この出力はその時点で収集され、これが最新の再起動エントリであり、「再起動」は実際にはまだ「ログオフ」されていません。その場合、最後のコマンドを再度実行すると出力が変わります。)

4 月 3 日の再起動ユーザーに対して、両方とも 9 日間のエントリが 2 つあるのはなぜか、私にはわかりません。私のシステムではそのようなことは起こりません。

答え2

まとめ

  • 最初のタイムスタンプは、再起動中にシステムがダウンした時刻のようです。
  • 2 番目のタイムスタンプと経過時間はあまり役に立ちません。
  • -xオプションを に渡すと、行lastに表示されるタイムスタンプに影響を与えるシャットダウンや実行レベルの変更に関連する他のイベントを表示するのに役立つ場合がありますreboottuptime別の回答で参照されているツールを使用すると、これがより明確になる可能性がありますが、私はそれを調べていません。

詳細

lastCentOS 6 および 7 のマニュアル ページには次のように記載されています。

疑似ユーザー reboot は、システムが再起動されるたびにログインします。

ユーザーがログアウトする時間については何も述べられておらず、以下に示す証拠は、ログアウト時間が明示的に記録されていないことを示唆しているようです。 およびrebootmanshutdownページには、実行レベルの変更の記録に関する詳細が記載されていますので、興味のある方はご覧ください。

テストの結果、ログイン時間はシャットダウン プロセスの後半からのものであり、コマンドがreboot発行された時間からのものではないことがわかりました。

したがって、ログアウト時間 (2 番目のタイムスタンプ) と、「reboot」がログインしていた期間 (括弧内に表示) はおそらく無視されると思われます。

-Fオプションを に渡すとlast、完全なタイムスタンプが表示されます。これにより、マシンが偶然同時に再起動されているのではなく、まったく同じタイムスタンプが数回表示されているだけであることが少し明確になります。また、フラグを渡すと-x、「システム シャットダウン エントリと実行レベルの変更」が表示されます。

ここでは CentOS 7 で実行し、-Rホスト名/カーネル バージョン列を抑制するオプションも渡しました。また、興味のないルート ログインもいくつか削除しました。

# date ; last -x -F -R
Mon Nov 12 01:10:44 UTC 2018
root     pts/0        Mon Nov 12 00:02:57 2018   still logged in
runlevel (to lvl 3)   Sat Nov 10 17:57:29 2018 - Mon Nov 12 01:10:44 2018 (1+07:13)
reboot   system boot  Sat Nov 10 17:57:12 2018 - Mon Nov 12 01:10:44 2018 (1+07:13)
runlevel (to lvl 3)   Sat Oct 27 17:58:20 2018 - Sat Nov 10 17:57:29 2018 (13+23:59)
reboot   system boot  Sat Oct 27 17:58:03 2018 - Mon Nov 12 01:10:44 2018 (15+07:12)
runlevel (to lvl 3)   Sat Jul 21 18:14:55 2018 - Sat Oct 27 17:58:20 2018 (97+23:43)
reboot   system boot  Sat Jul 21 18:14:16 2018 - Mon Nov 12 01:10:44 2018 (113+06:56)
runlevel (to lvl 3)   Sun Nov 12 22:36:14 2017 - Sat Jul 21 18:14:55 2018 (250+19:38)
reboot   system boot  Sun Nov 12 22:35:35 2017 - Mon Nov 12 01:10:44 2018 (364+02:35)
root     pts/0        Fri Nov 10 07:13:20 2017 - crash                    (2+15:22)
runlevel (to lvl 3)   Sun Aug 27 04:15:56 2017 - Sun Nov 12 22:36:14 2017 (77+18:20)
reboot   system boot  Sun Aug 27 04:14:59 2017 - Mon Nov 12 01:10:44 2018 (441+20:55)
runlevel (to lvl 3)   Mon Aug 14 00:14:01 2017 - Sun Aug 27 04:15:56 2017 (13+04:01)
reboot   system boot  Mon Aug 14 00:13:46 2017 - Mon Nov 12 01:10:44 2018 (455+00:56)

上記の 6 つの「再起動」行はすべて、ログアウト時刻が現在の時刻と同じです。

shutdown system down  Fri Aug 11 08:05:29 2017 - Mon Aug 14 00:13:46 2017 (2+16:08)
root     pts/0        Fri Aug 11 08:05:23 2017 - down                      (00:00)
runlevel (to lvl 3)   Fri Jun 30 07:05:42 2017 - Fri Aug 11 08:05:29 2017 (42+00:59)
reboot   system boot  Fri Jun 30 07:05:27 2017 - Fri Aug 11 08:05:29 2017 (42+01:00)
[...]
root     pts/0        Fri Jun 30 05:48:16 2017 - crash                     (01:17)
root     pts/0        Tue Jun 27 04:59:56 2017 - Tue Jun 27 05:00:30 2017  (00:00)
root     pts/0        Mon Jun 26 11:20:57 2017 - Mon Jun 26 04:24:39 2017  (-6:-56)
runlevel (to lvl 3)   Mon Jun 26 11:15:13 2017 - Fri Jun 30 07:05:42 2017 (3+19:50)
reboot   system boot  Mon Jun 26 11:14:57 2017 - Fri Aug 11 08:05:29 2017 (45+20:50)
root     pts/0        Sun Jun 25 14:07:51 2017 - crash                     (21:07)
[...]
root     tty1         Thu Jun 22 13:07:42 2017 - crash                    (3+22:07)
runlevel (to lvl 3)   Thu Jun 22 13:07:07 2017 - Mon Jun 26 11:15:13 2017 (3+22:08)
reboot   system boot  Thu Jun 22 13:06:51 2017 - Fri Aug 11 08:05:29 2017 (49+18:58)
root     pts/0        Thu Jun 22 12:43:56 2017 - crash                     (00:22)
runlevel (to lvl 3)   Thu Jun 22 12:30:53 2017 - Thu Jun 22 13:07:07 2017  (00:36)
reboot   system boot  Thu Jun 22 12:30:38 2017 - Fri Aug 11 08:05:29 2017 (49+19:34)
root     pts/1        Thu Jun 22 12:26:49 2017 - crash                     (00:03)
root     pts/0        Thu Jun 22 11:55:28 2017 - crash                     (00:35)
runlevel (to lvl 3)   Thu Jun 22 11:49:53 2017 - Thu Jun 22 12:30:53 2017  (00:41)
reboot   system boot  Thu Jun 22 11:49:14 2017 - Fri Aug 11 08:05:29 2017 (49+20:16)

上記の 5 つの「再起動」行のログアウト時間は、すべて、その後に続く「システムのシャットダウン」の時間と同じです。

shutdown system down  Thu Jun 22 11:47:45 2017 - Thu Jun 22 11:49:14 2017  (00:01)
[...]
runlevel (to lvl 3)   Wed Jun 21 15:59:42 2017 - Thu Jun 22 11:47:45 2017  (19:48)
reboot   system boot  Wed Jun 21 15:59:27 2017 - Thu Jun 22 11:47:45 2017  (19:48)

「再起動」ログアウト時間は再び「システムのシャットダウン」時間と一致します。

shutdown system down  Wed Jun 21 15:57:58 2017 - Wed Jun 21 15:59:27 2017  (00:01)
root     pts/0        Wed Jun 21 14:27:43 2017 - down                      (01:30)
[...]
runlevel (to lvl 3)   Tue Jun 20 17:14:15 2017 - Wed Jun 21 15:57:58 2017  (22:43)
reboot   system boot  Tue Jun 20 17:14:00 2017 - Wed Jun 21 15:57:58 2017  (22:43)

上記のように。

上記の結果から、疑似ユーザー「reboot」には明示的なログアウト時間が記録されていないと想定し、last次の「shutdown system boot」のログアウト時間、またはその後に「shutdown system boot」がない場合は現在の時間を割り当てます。

「runlevel (to lvl 3)」エントリでは、より適切なログアウト時間が推測されているようですが、クラッシュは考慮されていないようです。

答え3

マニュアルページによると、最後の列はセッションの開始、終了時刻、およびセッションの継続時間であるようです。

答え4

最後の行は、おっしゃるとおりの稼働時間です。最後の 2 列は、再起動時間と現在の時刻だと思います。最後のコマンドを実行すると、後ろから 2 番目の列に現在の時刻が表示され、常に変更されるためです。

関連情報