CentOS環境に ntpdをインストールして自動的に時刻を取得して合わせる設定にする
2019/03/02
CentOS環境に ntpdをインストールして自動的に時刻を取得する
VirtualBoxに LAMP環境を作ったけど時刻がずれていた
「VirtualBoxにCakePHP3を設置。必要なCentOS、Apache、PHP、MySQL、Composerをインストールし設定する」の記事で、VirtualBox環境に CentOS7を入れて、LAMP環境を構築し、CakePHP3でアプリを開発できる環境を構築しました。
ですが、構築した仮想マシンの時計がずれていることに気が付きました。
なので、その仮想マシンの時計を合わせたときの手順を解説します。
時刻を確認して、ntpdをインストールする手順
時刻を修正するにあたっては、まず現在の状況を確認します。
そのために、下記のコマンドを実行して、現在の時刻を確認します。
# date 2018年 7月 12日 木曜日 03:27:38 JST
もう 8月なのですが、まだ 7月半ばの日時が表示されています。
上記は OSが把握している日時なのですが、これがずれている場合は、ハードウェアの時刻もずれている可能性がありますので、下記のコマンドを実行して、ハードウェアの時刻も確認します。
# hwclock -r 2018年07月11日 11時34分50秒 -0.127403 秒
続いて、時刻を NTPサーバに定期的にアクセスし、自動的に時刻を合わせてくれるサービスがインストールされているかを確認します。
# systemctl status ntpd Unit ntpd.service could not be found.
「Unit ntpd.service could not be found.」という結果は、該当のサービスが入っていないということですので、下記の yumコマンドを実行してインストールします。
# yum install ntp
インストールした ntpdの設定をする
ntpdをインストールしたら、ntpdの設定を行います。
ntpdの設定は、「/etc/ntp.conf」に記述されています。
NTPサーバを変更したい場合は、「/etc/ntp.conf」の 20行目付近にある下記の記述のサーバを変更します。
# Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst
ほとんどの場合は、デフォルトの設定のままで問題ありません。
ですが、1秒以下の単位での時刻が正しい必要がある場合などは、NTPサーバを国内のサーバに変更するなどの対応を行うといいでしょう。
下記に NTPサーバの一覧がありますので、この中から NTPサーバを選択し、「/etc/ntp.conf」ファイルの該当の個所を更新します。
http://wiki.nothing.sh/page/NTP/%BF%E4%BE%A9%B8%F8%B3%AB%A5%B5%A1%BC%A5%D0#h946fa09
インストールした ntpdを有効にするため、下記のコマンドで起動を実施します。
# systemctl start ntpd
起動コマンドを実行したら、下記のコマンドで起動したことを確認します。
# systemctl status ntpd
● ntpd.service - Network Time Service
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
Active: active (running) since 土 2018-08-04 12:30:25 JST; 1 weeks 0 days ago
Process: 5136 ExecStart=/usr/sbin/ntpd -u ntp:ntp $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 5137 (ntpd)
CGroup: /system.slice/ntpd.service
mq5137 /usr/sbin/ntpd -u ntp:ntp -g
8月 04 12:30:25 localhost.localdomain ntpd[5137]: Listen normally on 5 lo ::1 UDP 123
(以下略)
また、Apacheや MySQLなどと同じく、サーバを再起動したときに NTPも自動起動する設定にしておく必要がありますので、下記のコマンドを実行します。
# systemctl enable ntpd Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
自動起動の設定ができたかどうかを、下記のコマンドで確認します。
# systemctl is-enabled ntpd enabled
「enabled」になっていると自動起動が設定されています。
続けて、下記のコマンドで、ハードウェアの時刻も合わせておきます。
# hwclock -w
改めてハードウェアの時刻を表示して、ハードウェアの時刻も正しいものになったことを確認します。
# hwclock -r 2018年08月04日 12時13分55秒 -0.569721 秒
これでサーバの時刻を設定することができました。
NTP、NTPサーバ(Network Time Protocolサーバ)とは何か?
「NTP(Network Time Protocol)」とは、ネットワークに接続されている機器が正しい時間を維持することができるように、正しい時刻を取得して同期するために使用する通信プロトコルのことです。
その正しい時刻を提供しているサーバを「NTPサーバ(Network Time Protocolサーバ)」と言います。
つまりは
インターネット上には、正しい時間を提供する「NTPサーバ」というサーバがあります。
私たちが構築、利用している Webサーバや、パソコンは、その NTPサーバに定期的にアクセスすることで時刻を調整し、正しい時刻にしています。
その調整するために NTPサーバにアクセスするための手続きが NTPというプロトコル、ということになります。
そして、日本国内の NTPサーバについては、下記に解説があります。
http://wiki.nothing.sh/page/NTP/%BF%E4%BE%A9%B8%F8%B3%AB%A5%B5%A1%BC%A5%D0#h946fa09
また、自宅の Windowsパソコンが、スリープから回復すると日付がずれるという現象が発生したことがありましたが、その時、NTP、NTPサーバについて調べました。
その時の記事が下記にありますので、あわせて参考にしてみてください。
Windows 10パソコンで日付、時間がずれる!原因と時計を合わせる解決方法
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
Apacheの起動しているかの確認方法と起動、再起動、終了のコマンド
Apacheが起動しているかを確認する方法の解説に加え、Apacheの起動、停止、再起動のコマンドを解説。再起動のコマンドには restart、condrestart、reload、gracefulがあり、違いを解説。
-
-
日本語は2バイト文字?3バイト文字?
日本語は2バイトという理解でしたが、UTF-8では事情が違います。その説明です。
-
-
本当に?GMO系ロリポップ・ヘテムルを無料で運用する方法があった!
ロリポップ、ヘテムルを株主優待を利用して実質無料で運営しよう!という解説記事です。株主優待で提供されるサービスの内容を解説し、無料になる仕組みを解説します。
-
-
PythonでMySQLへの接続ライブラリMySQL-pythonの簡単インストール方法
PythonはMySQLに接続するライブラリは別途インストールが必要。なのでMySQL-pythonライブラリのインストール方法とサンプルスクリプトで動作検証までを解説。
-
-
X Serverへの引越しの注意点まとめ。ロリポップとの違いと対処方法 6事例
ロリポップからX Serverに引越し。ロリポップとX Serverの違いに注目することでX Serverの設定方法を明確にします。またX Serverならではの設定ポイントなども解説。
-
-
SyntaxHighlighterを導入してソースコードを見やすくしてみました
PHP、HTMLなどのソースコードをブログで紹介するとき、SyntaxHighlighterを利用することで見やすく提供することが出来ます。
-
-
コピーコンテンツ対策.htaccessで直リンク禁止しリダイレクトで対応
不正なコピーコンテンツからの直リンクを拒否する.htaccessの設定方法。拒否するサイトを指定、許可するサイトを指定する方法、単純な拒否と画像の差し替えを解説。
-
-
Gitはフォルダ自体を管理対象にはできない。空のフォルダを設定する手順
Gitはフォルダだけを管理対象にすることはできない。そのため空の.gitkeepファイルを作成し管理対象にすることで、それが入っているフォルダも管理対象にする、と言う手順で管理を行う。
-
-
Selenium WebDriver、Pythonをインストールし Chromeの自動操作の環境構築手順のまとめ
Selenium WebDriverを使ってChromeを自動操作する環境を構築する手順のまとめ。使用するPythonのインストールから、サンプルスクリプトの動作確認までを詳細解説。
-
-
PythonでURLの有無、存在をチェックするスクリプト
PythonでURLが存在するか否かのチェックスクリプト。ライブラリ「urllib2」を使い、指定のURLにアクセスしそのレスポンスコードを判別するという仕組み。