LoginSignup
1
0

More than 5 years have passed since last update.

Linuxの時刻合わせ

Posted at

はじめに

例えばシステムに障害が起きた時など、ログを確認する時には日時が非常に重要です。
複数のサーバーでシステムを構成している場合、それぞれのサーバーの時刻がバラバラだと、障害時に状況の把握や原因究明の足枷となる可能性があります。

以下は、自宅で運用しているサーバーで使っている時刻合わせのスクリプトと、その設定方法です。
本番環境では負荷に耐えられるNTPサーバーを指定したり、時刻合わせの間隔を調整する必要があるので、スクリプトや設定を適宜修正する必要があると思いますが、何かの参考になれば幸いです。

使用した環境

  • OS:CentOS 6.10

事前準備

  • 時刻合わせに使うntpdateパッケージをインストールしておきます。
  • ntpと異なり、ntpdateコマンドは「NTPサーバーとの時刻差が大きくてもエラーとならない」のが特徴です。
[root@kumotori ~]# yum install ntpdate -y

時刻合わせ用スクリプト

  • 時刻合わせに使うNTPサーバーは、googleのPublic NTPサーバー(time.google.com)を指定しています。
  • /sbin/clock --systohcは「ハードウェアクロックをシステムクロックに合わせる」という設定です。
    • ハードウェアクロック:マザーボード上で管理される時刻で、OSをシャットダウンしても消えませんが、マザーボード上の電池(ボタン電池)が切れると消えてしまいます。
    • システムクロック:OSが管理する時刻で、OSがシャットダウンすると消えてしまいます。
ntpdate.sh
#!/bin/sh

/usr/sbin/ntpdate -s time.google.com
/sbin/clock --systohc

タイムゾーンの設定

スクリプトの配置

  • 任意のフォルダに上記のスクリプトを配置しています。
    • 私は/root/scriptsというフォルダを作って、そこに上記のスクリプトを配置しています。
  • 配置した後、スクリプトに実行権限(x)を付けておきます。
  • 最後にcrontab -eで、crontabに「毎時30分に上記のスクリプトを実行する」と設定して完了です。
[root@kumotori ~]# chmod 744 /root/scripts/ntpdate.sh 
[root@kumotori ~]# ls -l /root/scripts/
合計 4
-rwxr--r--. 1 root root 75  3月 10 15:48 2019 ntpdate.sh
crontab
### ntpdate.
30 * * * * /root/scripts/ntpdate.sh
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0