システムが最後に起動した2つの時間を示すLinuxシステムがあります。
root@linux:~ # who -b; uptime
system boot 2009-07-09 20:51
11:48am up 1 day 0:54, 1 user, load average: 0.01, 0.03, 0.00
誰が/var/log/wtmpの内容と稼働時間を表示しているのかを推測します。
この違いを解決する方法はありますか?昨日、システムを再起動して表示される稼働時間が正しいことを確認しました。
答え1
[ここでいくつかの誤解を見つけましたが、この記事がついに解決されると思います]
/var/run/utmp
どちらもレコードを保存するための独自の形式のファイルを参照しているため、違いはありません。違いがある場合は、utmpファイルが破損しています。稼働時間は、システムが始動してから経過した時間、またはシステムが稼働していた期間を示します。システムクロックやシステム起動時間は通知されません。。システム起動時間情報はファイルに保存されます/var/run/wtmp
。
[centos@centos temp]$ date; uptime; who -b
Fri Dec 9 20:41:40 IST 2011
20:41:40 up 1:32, 2 users, load average: 0.50, 0.37, 0.29
system boot 2011-12-09 19:11
uptimeはまた、本質的にカーネルにカウンタを保持する/ proc / uptimeを表します。
[centos@centos temp]$ sleep 1; cat /proc/uptime; uptime; sleep 5; cat /proc/uptime ; uptime
5914.79 5271.83
20:47:39 up 1:38, 2 users, load average: 0.29, 0.31, 0.27
5920.07 5276.80
20:47:44 up 1:38, 2 users, load average: 0.56, 0.36, 0.29
/var/run/wtmp
last/lastb コマンドによって参照されます。who
&w
参考/var/run/utmp
資料。last reboot
ログファイルが生成された後、すべての再起動のログが表示されます。
また、/procファイルシステムがある場合は、このようなツールを使用してprocinfo
起動時間を取得できます。
例:
bash$ procinfo | grep Bootup
Bootup: Wed Mar 21 15:15:50 2001 Load average: 0.04 0.21 0.34 3/47 6829
答え2
BIOSクロックが同期されていないときにこれが起こるのを見ました。以下を実行してこれを確認できます。
$ hwclock --show
Tue 30 Aug 2011 12:48:52 PM PDT -1.000516 seconds
このオプションがオフの場合は、同期的にバックアップする必要があります(--setオプションを使用)。これが頻繁に発生する場合は、マザーボードのCR2032を交換する必要があるかもしれません。http://www.hardwaresecrets.com/article/81