mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Linux - システム稼働開始日時取得!

[ サーバ構築 ] [ CentOS, Linux, LinuxMint ]

こんばんは。

Linux 等では uptime でシステムの稼働時間を取得できますが、いつから稼動しているのかは取得できません。

以下、別のコマンドでシステム稼働開始日時を取得する方法についてです。

0. 前提条件

  • CentOS 6.5, Linux Mint 14 で動作確認したが、 Unix 系 OS ならどれも同じはず。

1. システム稼働開始日時取得コマンド

以下のようにコマンドを実行するとシステム稼働開始日を取得できる。

1
2
$ last -1 reboot | grep reboot |  awk '{print $5, $6, $7, $8}'
Sun Jun 30 00:21
  • last コマンドは、最近ログインしたユーザのリストを表示するコマンド。
    ("/var/log/wtmp" ファイルから検索して表示。詳細は man last コマンド等でご参照ください)
  • -1 は、表示行数を1行に指定するオプション。
  • reboot は、参照するユーザ名。(システムリブート時の擬似的なユーザ)
  • grep reboot は、last -1 reboot で取得した行のうち reboot を含む行を抽出するコマンド。
  • awk ... は、抽出された行の該当カラムの値を取得するコマンド。
    (11カラム目も取得すれば、稼働時間も取得できる)

  • last コマンドに -R を使用した場合は hostname フィールドが非出力になるので、awk コマンドでの取得カラムが1つずつズレる。

2. その他

上記のような方法以外にシステムの稼働開始日を取得するには、シェル等駆使して現在日時から uptime で取得した稼働時間をマイナスして算出する方法も考えられるだろう。(ここでは紹介しない)


今回は、何かの時に役に立つかもしれないような内容でした。(実際、当ブログの「サーバ連続稼働時間」をマウスオーバすると表示するようにしていますが)

以上。

Comments