Linux - システム稼働開始日時取得(uptime 使用)!
Updated:
以前、 btime からシステム稼働開始日時を取得する方法を紹介しました。
今回は uptime から取得する方法についての記録です。
【2017-06-16 追記】
Debian であれば、以下のようにわざわざ計算しなくとも、uptime -s
で容易に取得できる。
【追記ここまで】
0. 前提条件
- CentOS 6.8(32bit) での作業を想定。
1. 事前確認
“/proc/uptime” に「システムが起動してから経過した合計秒数」と「各コアがアイドル状態で経過した合計時間の秒数」が記録されているので、それを確認してみる。。
$ cat /proc/uptime
20400382.35 1448976.68
2. コマンド実行例
$ date +"%Y-%m-%d %I:%M:%S" --date=@$(expr `date +%s` - `cut -d "." -f 1 /proc/uptime`)
2016-01-24 08:39:40
+"%Y-%m-%d %H:%M:%S"
は、結果出力の書式。date +%s
は、現在時刻の UNIX 時間。cut -d "." -f 1 /proc/uptime
は、 “/proc/uptime” を “.” で区切ってその1つ目を抽出。(1秒未満を切り捨て)expr A - B
は、 A - B の計算。--date=@...
は、日付を UNIX 時間で指定。$(....)
は、コマンド置換。`...`
と同じ意味だが、`...`
はネストできないので。
3. 参考サイト
システム起動日時(Unix 時間)が直接取得できた “/proc/stat” の btime とは異なり、 “/proc/uptime” では現在日時との差を計算しなければなりませんが、取得できる日時は btime と同じく正確(誤差1秒未満の精度)です。
以上。
Comments