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

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

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

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

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リカレントテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リカレントテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する