red hat /var/run/utmp,/var/log/wtmp 文件不能正確更新!

d1m2j3 2005-11-02 11:40:49
單位的服務器,原來是Suse8.0+informix9.2,後來昇到red hat enterprise 3.0+informix9.4(換成red hat 是因為informix9.4與Suser8.0不兼容).結果就出現了這個問題.
一開始發現用who,w不能正確顯示user信息,不管有多少個user登陸退出,who命令每次顯示同樣的內容,w則顯示不出user;重啟好了,一段時間後問題又出現;
經過研究發現此問題是由於/var/run/utmp和/var/run/wtmp不能被正確更新造成的(who和w都是讀取utmp來顯示user信息的);正常情況下,一個user登陸,umtp和wtmp都會被寫入一條關與user登陸的信息,user退出後此信息被更新表示用戶退出;但在出現問題後,不管有多少個user登陸退出utmp就是死活更新不了,而wtmp則登陸的時候會有user信息寫入,但user退出時信息不會被更新,還保持登陸狀態;
最令我faint的是當用vi 命令編輯/var/run/utmp,當然顯示的都是亂嗎,隨便刪掉一行,保存退出,utmp就可以被寫入了,但一段時間後就又不可以寫入;又或者將utmp文件copy成另外一文件,將utmp刪掉,再將復制文件名改成utmp,utmp文件也可以被寫入了;
在出現此問題後,user登陸時輸完進入系統明顯有停頓感,應該也是由於utmp文件寫不進去造成的;這個問題都快把我折騰的不行了.我們單位的3個事業處服務器都有這樣的問題.把utmp文件清空了,好了,一段時間後又不行了.後來把enterprise3.0換成red hat9.0還是有這樣的問題.而我們集團的其他事業處的服務器都是red hat很早的版本確沒這樣的問題,真是鬱悶呀!
用man utmp查看命令手冊有這麼一段:
Note that the utmp struct from libc5 has changed in libc6. Because of
this, binaries using the old libc5 struct will corrupt /var/run/utmp
and/or /var/log/wtmp. Debian systems include a patched libc5 which
uses the new utmp format. The problem still exists with wtmp since
中文翻譯(網上找的)就是
需要注意的是在 libc5 和 libc6 中 utmp 的结构是不同的.因此使用旧结构的程序会破
坏 /var/run/utmp 和/or /var/log/wtmp. Debian 系统包含一个修补过的 libc5 它可
以使用新的格式. 但对 wtmp, 问题依然存在因为它直接对 libc5 进行存取.

有那位大蝦知道問題原因的,請不吝賜教,感激不盡!
...全文
262 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

19,614

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧