마지막 재부팅과 -b가 다른 결과를 표시하는 사람은 누구입니까?

마지막 재부팅과 -b가 다른 결과를 표시하는 사람은 누구입니까?

다음 3가지 명령을 사용하여 컴퓨터가 다시 시작된 최신 시점을 확인합니다.

last reboot
who -b
uptime

마지막 재시작 결과는 다음과 같습니다.

wtmp begins Sat Oct  9 04:49:27 2021

who -b의 결과는 다음과 같습니다.

system boot  2018-01-11 20:52

가동 시간 결과는 다음과 같습니다.

22:49:01 up 1372 days, ...

uptime과 who -b의 결과는 일치하는 것 같지만 마지막 재시작 결과와는 일치하지 않습니다.

이 게시물을 찾았습니다가동 시간과 who -b는 Linux에서 시스템이 마지막으로 부팅된 시간을 다르게 표시합니다., 그러나 그의 가동 시간이 who -b와 일치하지 않는다고 말했는데 이는 내 상황과 다릅니다.

답변1

Linux에서는 세 가지 명령 모두 기본적으로 서로 다른 정보 소스를 사용합니다.

uptime커널이 제공하는 정보를 사용하십시오 /proc/uptime. 후자의두 가지 정보가 포함되어 있습니다.: 정지 시간 및 유휴 프로세스 시간을 포함한 시스템의 정상적인 실행 시간입니다. 이 값은 정확합니다.

who -b저장된 정보 사용/var/run/utmp. 현재 시스템에서 이는 실제로 /run/utmp현재 부팅에 대한 정보( 시스템 재부팅 시 해당 내용이 손실 /run되는 정보 tmpfs)이며 현재 부팅에 대해서도 정확합니다.

last reboot에 저장된 정보를 사용합니다 /var/log/wtmp. 여기에 저장된 정보도 일반적으로 정확하지만 귀하의 정보는필요더 이상 거기에 저장되지 않을 수 있습니다. wtmp여러 설정에서 일반적으로 매월 순환됩니다. 즉, 시스템의 현재 시작 시간이 wtmp마지막 회전 시간보다 이전인 경우 표시되는 정보는 부분적입니다. 특히, last reboot결국 표시되는 것은 시스템의 실제 시작 시간이 아닌 마지막 회전 시간입니다. 이것이 last시작 시간이 표시되는 이유 입니다 wtmp. 이는 표시되는 정보의 시간 범위입니다 last.

wtmp마지막 부팅 시간이 포함 되면 last reboot다음과 같이 표시됩니다.

$ last reboot | head -n 1
reboot   system boot  5.10.0-8-amd64   Mon Sep 13 15:56   still running
$ who -b
         system boot  2021-09-13 15:56
$ uptime
 09:11:03 up 31 days, 17:15, 13 users,  load average: 0.48, 0.34, 0.42

관련 정보