出力と比較する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
最高のツールです。