電子書籍の厳選無料作品が豊富!

はじめまして。
AIX4.2.1でWTMPを退避するプログラムを作成しました。その退避方法は、wtmpをfwtmpでASCIIに変換し、その内容から新しいログか古いログかを判別し、新しいものはそのままwtmpとして、古いものはwtmp.0へ保存する方法です。実際に実行してみると、たしかにwtmpとwtmp.0に分類することは成功したものの、LASTコマンドでwtmp.0を指定してログを見てみると、一部のログ(退避したログの一番新しいもの)がログアウト完了後のものにもかかわらず「ログイン中です。」と表示されてしまいました。
私の認識ではログアウト情報はwtmpが持っているものだと思っていたのですが、違うのでしょうか?ご存知の方がいらっしゃったらぜひ教えてください。できれば対策もご存知でしたらあわせてお願いします。

A 回答 (1件)

wtmpには、ログインした記録とログアウトした記録が、ほぼ同じフォーマットで別々に追加記録されていきます。

wtmpファイルをある時点で分割すると、そのときログインしていたユーザのログイン記録とログアウト記録は分断されてしまいます。lastに古い方のファイルだけを与えた場合はログアウト記録がないために、当然ログイン中と認識されます。

対策としては、分割時に、ログイン中の端末があるかどうか調べ、あるなら新しいほうから該当する端末のログアウト記録を探し出して、古い方にマージすることになるでしょうか。またはログアウト記録を分割時点で新たに作成し、新しい方のファイルではその時点で再度ログインしたことにしてしまうなどでしょうか。

利用時間を自動的に正確に算出したいというなら、さまざまな条件を考えて、対策しないといけませんが、人間が参考のために見る程度でしたら、あえて無視するという方法もあります。
    • good
    • 0
この回答へのお礼

ありがとうございました。
大変参考になりました。
ちなみにご存知なら教えていただきたいのですが、
ログインログとログアウトログはどのように見分ければよいのですか?
よろしくお願いします。
今回は本当にありがとうございました。

お礼日時:2003/07/01 00:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!