3分理解!時間のずれを直せるLinuxのシステムクロックの使い方

  • このエントリーをはてなブックマークに追加
  • Pocket
Linuxのシステムクロック

Linuxは時間を管理するうえで二つの時計を持ち合わせている。

一つはマザーボードに設置されている、ハードウェアクロック(これは別のページにて記述する)、もう一つがOSがソフトウェア的に管理するシステムクロックだ。このページではシステムクロックについて解説する。

Linuxの時間がずれている?などあれば、参考にして調整してほしい。

Linuxのシステムクロックとは?

Linuxの起動時にハードウェアクロックを一度参照する。その値を元に適切に設定されシステムクロックが動き始めることになる。

そのため再起動時にハードウェアクロックにずれがあると、システムクロックにもずれが生じるので気をつけよう。

システムクロックを調整したにもかかわらず、起動するたびに時刻がずれるようであれば、ハードウェアクロックを確かめよう。

時刻の設定調整はファイルシステムのタイムスタンプやログなどの時刻に直結しているので、定期的に調整し常に正しい時刻を設定するようにしたい。

システムクロックに関するコマンド

dateコマンド

dateコマンドを使用すると現在のシステムクロックを確認、および設定することが出来る。システムクロックを表示する場合

$ date

とコマンドを叩けばよい。現状のシステムクロックが表示されるはずだ。dateコマンドを使用して時刻を設定する場合は

# date [MMDDhhmm[[CC]YY][.ss]]

の書式に沿って設定する。例をあげると

# date 102200122016

として設定すると「2016年10月22日00時12分」となる。それぞれ

「MMが月」「DDが日」「hhが時」「mmが分」「CCが西暦上二桁」「YYが西暦下二桁」となる。「.ssは秒」のしていとなっている。

またdateは引数に「+」をあたえると指定した書式での表示が可能となっている。例えば日本人になじみぶかい、表記にしてみると

$ date "+%Y/%m/%d %H:%M"

実行結果

2016/10/22 00:26

となるそれぞれの項目は「%Y年」「%m月」「%d日」「%H時」「%M分」「%a曜日」「%b月名」となっている

ntpdateコマンド

残念ながらdateコマンドだけでは正確な時刻を設定することは不可能だ。手動で時刻をあわせていると、どうしても秒単位にずれが発生する。もしくは長時間稼動させているサーバは何もしなければ徐々に時刻がずれてゆく。

デジタルの時計とは以外にアバウトなものなのだ。そのため時刻をつかさどることに専属するNTPサーバと通信をとって同期することで、正しい時刻を取得することが出来る。

ntpdateコマンドはNTPサーバのクライアントである。このコマンドを使用して時刻サーバから正しい時刻を取得する。ntpdateコマンド自体は書式的には単純である。

ntpdate NTPサーバ

となっている。例えば

# ntpdate ntp.nict.jp

などだ。このコマンドによりNTPサーバから正確な時刻を取得できる。

ntpd(NTPサーバ)

自分でNTPサーバを構築することも可能だ。各ディストリビューションでntpのパッケージが用意されているはずだ。それぞれの方法でインストールしよう。例えばDebianの場合

# apt-get install ntp

とするとntpサーバがインストールされる。

古いシステムの場合の起動および管理方法(古いRedHat系など)

サービスをスタートする。

# /etc/init.d/ntpd start

サービスを停止する。

# /etc/init.d/ntpd stop

サービスを再起動する。

# /etc/init.d/ntpd restart

起動時にサービスを自動的に起動する。

# chkconfig ntpd on

モダンなシステムの場合(最新のDebianなど)

サービスを起動する。

# systemctl start ntp

サービスを停止する。

# systemctl stop ntp

サービスを再起動する。

# systemctl restart ntp

起動時にサービスを自動的に起動する。

# systemctl enable ntp

具体的な設定

vi /etc/ntp.conf

設定しおえたら、サービスを再起動しよう。

# ntpq -p

ntpq-p

で状態を確認できる。

CentOS7の場合

CentOS6系までは他と同じくntpを使用して時刻同期をおこなっていた。しかしCentOS7からは「Chrony」を使用して時刻同期をするようになっている。デーモンが変わるが、やることはさほど変化しない。設定も難しくないので安心していただきたい。

chronyがはいっていない場合インストールする

# yum install chrony

サービスを起動する。

# systemctl start chronyd

サービスを停止する。

# systemctl stop chronyd

サービスを再起動する。

# systemctl restart chronyd

起動時にサービスを自動的に起動する。

# systemctl enable chronyd

具体的な設定

vi /etc/chrony.conf

設定し終えたらサービスを再起動しよう。

# chronyc sources

chrony

で状況が確認できる。

まとめ

このページでは時間がずれているとき調整ができる、Linuxのシステムクロックについてお伝えした。

必要なときに随時調べればいいが、「こういった流れでできるのか」というのは掴んでいた方がいいだろう。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*