가동 시간과 who -b는 Linux에서 시스템이 마지막으로 부팅된 시간을 다르게 표시합니다.

가동 시간과 who -b는 Linux에서 시스템이 마지막으로 부팅된 시간을 다르게 표시합니다.

시스템이 마지막으로 부팅된 두 가지 시간을 보여주는 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/wtmplast/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

관련 정보