명령줄에서 커널 시간을 인쇄하는 방법은 무엇입니까?

명령줄에서 커널 시간을 인쇄하는 방법은 무엇입니까?

출력과 비교하기 uptime위해 에포크 이후의 출력을 초로 변환하려면 어떻게 해야 합니까 ? dmesg가동 시간은 커널 메시지 시간과 동일한 해상도를 갖습니까? 에서보다 커널 시간을 얻는 더 직접적인 방법이 있습니까 uptime?

➜  ~ echo "hi" > /dev/kmsg
➜  ~ dmesg | tail
[  859.214564] hi
➜  ~ uptime
10:08  up 2 days, 43 secs, 2 users, load averages: 1.69 1.64 1.54

답변1

Unix 취향에 따라 /proc파일 시스템에는 원하는 정보가 포함된 가동 시간 파일이 있을 수 있습니다.

Linux> cat /proc/uptime
5899847.37 23165596.55

uptime그리고 동시 명령의 출력은 다음과 같습니다.

Linux> uptime
16:46:27 up 68 days, 6:51,  3 users,  load average: 0.01, 0.02, 0.05

따라서 5899847.37/86400 = 68.28527 --> 68일 6시간 51분입니다.

답변2

커널 시간은 1970년 1월 1일 이후 초 단위로 저장됩니다. 가치있는 것으로 취급되기를 원하시나요? 아니면 커널이 실제 날짜/시간이 무엇이라고 생각하는지 알고 싶으십니까?

후자의 경우에는 date -u.

1970년 1월 1일(에포크) 이후의 현재 시간(초)을 원하고 이를 perl설치한 경우 다음을 실행할 수 있습니다.perl -e 'print time()."\n";'

동일한 정보를 반환하는 이 date명령을 사용할 수도 있습니다 .date +"%s"

시스템이 얼마나 오랫동안 실행되었는지 알고 싶다면 이것이 uptime최고의 도구입니다.

관련 정보