一部のカーネルアップデートを使用して、RHEL 5.8を実行しているテストPCの起動およびログイン履歴を抽出しようとしました。私はそれを使い始め、last -f /var/log/wtmp
奇妙な結果を見つけました。さらなる調査は、utmp形式と一致しないファイルに大量の16進データが記録されていることを示しました。
これらのブロックは、ASCII値を含むバイト数百があるため、ASCII値に見えます。たとえば、構造に使用されていない最後の20バイトから取得します0a30 7831 6234 6636 3762 652c 0930 7839 3562 3037
。0x1b4f67be,.0x95b07
調査を続けましたが、ASCIIテキストは開始時に印刷されたいくつかのテキストと一致しますdmesg
。私のプログラムが起動すると、画面にもテキストが印刷され、起動時に抽出された設定ファイルが読み込まれるのを見ました。
agetty
Wtmpファイルが1分ごとに増えているため、シリアルポートによって空のセクションが作成されたと思われます。私はその行をコメントアウトするとi/etc/inittab
7:2345:respawn:/sbin/agetty -h -t 60 ttyS0 115200 vt102
これで成長が止まります。
ファイルシステムに競合がありますか? i-nodeを見てみると共有されていないようです。
utmp構造にはいくつかの文字列値が含まれていますが、ほとんどは0に設定されているようです。
これらの項目の原因は何ですか?これはwtmpが信頼できないことを意味しますか?このアイテムが本当なら解読する方法はありますか?
以下は、16進エディタで貼り付けたwtmpファイルから抜粋したものです。
最後の合理的な入力と出力は次のとおりですlast
。
root tty1 Fri Nov 29 10:19 - crash (00:03)
00312300: 0700 0000 850b 0000 7474 7931 0000 0000 ........tty1....
00312310: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312320: 0000 0000 0000 0000 3100 0000 726f 6f74 ........1...root
00312330: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312340: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312350: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312360: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312370: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312380: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312390: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003123a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003123b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003123c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003123d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003123e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003123f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312400: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312410: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312420: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312430: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312440: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312450: 0000 0000 3e6a 9852 89b0 0000 0000 0000 ....>j.R........
00312460: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312470: 0000 0000 0000 0000 0000 0000 0000 0000 ................
これにより、項目が完全に空で表示されませんlast
。
00312480: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312490: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003124a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003124b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003124c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003124d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003124e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003124f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312500: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312510: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312520: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312530: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312540: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312550: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312560: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312570: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312580: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312590: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003125a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003125b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003125c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003125d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003125e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003125f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
ASCIIデータブロックがファイルに書き込まれるまで。これはutmp構造の一部から始まります。last
00312f00: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312f10: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312f20: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312f30: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312f40: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312f50: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312f60: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312f70: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312f80: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312f90: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312fa0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312fb0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312fc0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312fd0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312fe0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00312ff0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00313000: 0930 7862 3130 3264 6131 332c 0a30 7830 .0xb102da13,.0x0
00313010: 3939 6264 3532 392c 0930 7863 6634 3364 99bd529,.0xcf43d
00313020: 3936 312c 0930 7838 3235 6336 3331 662c 961,.0x825c631f,
00313030: 0930 7863 6233 6662 3130 372c 0a30 7865 .0xcb3fb107,.0xe
00313040: 3336 3265 3739 392c 0930 7866 3231 3362 362e799,.0xf213b
00313050: 3730 642c 0930 7830 3133 6537 3465 622c 70d,.0x013e74eb,
00313060: 0930 7832 3039 3539 6335 652c 0a30 7865 .0x20959c5e,.0xe
00313070: 3166 6663 6631 642c 0930 7865 6532 6438 1ffcf1d,.0xee2d8
その後には、後述の追加のASCIIバイトが続きますlast
。
27dba1f, 4f6fe3c,*0xe 0xed51abc6,*0xf Sun Oct 8 21:09 - crash (6626+14:13)
00313080: 3232 382c 0930 7865 3466 3666 6533 632c 228,.0xe4f6fe3c,
00313090: 0930 7865 6139 6531 6135 322c 0a30 7862 .0xea9e1a52,.0xb
003130a0: 3035 3935 6366 372c 0930 7863 3237 6462 0595cf7,.0xc27db
003130b0: 6131 662c 0930 7865 6339 3866 3162 612c a1f,.0xec98f1ba,
003130c0: 0930 7835 6135 3465 3261 632c 0a30 7865 .0x5a54e2ac,.0xe
003130d0: 6435 3161 6263 362c 0930 7866 6536 3361 d51abc6,.0xfe63a
003130e0: 3364 352c 0930 7866 3932 3161 3831 352c 3d5,.0xf921a815,
003130f0: 0930 7837 3732 3239 6262 662c 0a30 7837 .0x77229bbf,.0x7
00313100: 3032 3230 3363 392c 0930 7861 6337 6166 02203c9,.0xac7af
00313110: 3635 392c 0930 7834 3632 6639 3338 362c 659,.0x462f9386,
00313120: 0930 7863 3562 3834 3630 622c 0a30 7862 .0xc5b8460b,.0xb
00313130: 6231 6166 3862 382c 0930 7839 3238 3065 b1af8b8,.0x9280e
00313140: 6161 622c 0930 7861 3361 3265 3639 332c aab,.0xa3a2e693,
00313150: 0930 7861 3565 3231 3361 362c 0a30 7832 .0xa5e213a6,.0x2
00313160: 6130 6262 3861 322c 0930 7865 6639 3362 a0bb8a2,.0xef93b
00313170: 3061 632c 0930 7835 3936 3537 3530 352c 0ac,.0x59657505,
00313180: 0930 7839 3066 6632 6366 362c 0a30 7864 .0x90ff2cf6,.0xd
00313190: 3931 3564 6438 322c 0930 7864 6135 3061 915dd82,.0xda50a
003131a0: 3337 332c 0930 7834 6338 3936 3137 612c 373,.0x4c89617a,
003131b0: 0930 7834 6435 3465 3832 662c 0a30 7865 .0x4d54e82f,.0xe
003131c0: 3237 6161 6537 322c 0930 7839 6230 6237 27aae72,.0x9b0b7
003131d0: 6234 312c 0930 7830 3264 6263 3863 352c b41,.0x02dbc8c5,
003131e0: 0930 7865 3134 6532 6139 372c 0a30 7831 .0xe14e2a97,.0x1
003131f0: 6234 6636 3762 652c 0930 7839 3562 3037 b4f67be,.0x95b07
ブロックは、次のutmpブロックがキャプチャされるまで続きますlast
。
reboot system boot 2.6.30.9 Fri Nov 29 10:23 (340+04:17)
00315900: 0800 0000 2302 0000 0000 0000 0000 0000 ....#...........
00315910: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315920: 0000 0000 0000 0000 7369 0000 0000 0000 ........si......
00315930: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315940: 0000 0000 0000 0000 0000 0000 322e 362e ............2.6.
00315950: 3330 2e39 0000 0000 0000 0000 0000 0000 30.9............
00315960: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315970: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315980: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315990: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003159a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003159b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003159c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003159d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003159e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
003159f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315a00: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315a10: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315a20: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315a30: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315a40: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315a50: 0000 0000 1f6b 9852 b481 0600 0000 0000 .....k.R........
00315a60: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315a70: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315a80: 0200 0000 0000 0000 7e00 0000 0000 0000 ........~.......
00315a90: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315aa0: 0000 0000 0000 0000 7e7e 0000 7265 626f ........~~..rebo
00315ab0: 6f74 0000 0000 0000 0000 0000 0000 0000 ot..............
00315ac0: 0000 0000 0000 0000 0000 0000 322e 362e ............2.6.
00315ad0: 3330 2e39 0000 0000 0000 0000 0000 0000 30.9............
00315ae0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315af0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315b00: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315b10: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315b20: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315b30: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315b40: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315b50: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315b60: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315b70: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315b80: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315b90: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315ba0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315bb0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315bc0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315bd0: 0000 0000 1f6b 9852 ce16 0700 0000 0000 .....k.R........
00315be0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00315bf0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
項目が一時的に再理解され、同様のASCIIデータが表示されます。
答え1
これは、たとえば読み取ったバイナリファイルですlast
(デフォルトは、を/var/log/wtmp
使用して他のターゲットを指定することもできます-f
)。
したがって、最後の合理的なエントリがあるかどうかは、最後にこのファイルへのアクセスを実装する方法とファイルを使用する方法によって異なります。にアクセスすることです)。
答え2
wtmp
ファイルはutmp
ASCIIではなくバイナリです。したがって、ASCII以外のデータが表示されると予想されます。読むには、このlast
コマンドを使用してください。コマンドが機能すると、ファイルに問題はありません。
フォーマットの例は次のように見えman 5 wtmp
ます。ここ。
このページには次の内容も記載されています。
libc5のutmp構造がlibc6で変更されました。したがって、以前のlibc5構造を使用するバイナリは、/var/run/utmpおよび/または/var/log/wtmpを破損します。
失敗した場合、last
これは誤った16進ダンプを説明できますか?
答え3
いよいよ見つけました。
システムには、特定のプロセスにアクセスできない場合にシステムを再起動する監視機能があります。問題は、私のアプリケーションがSIGTERMまたはSIGKILLによって終了し、最初に監視デバイスとの接続を切断しないことです。 SIGINT を使用すると、監視装置との接続が切断されます。
シャットダウン中に再起動すると、これらの奇妙なバイトがwtmpに書き込まれます。これで、chkconfigとrc#.dの設定リンクを使用して/etc/init.dに起動スクリプトと終了スクリプトを作成しましたが、問題は消えました。