ntpdateとcrontabで時刻を合わせてみる
2019/03/04
足元にある(実験用)サーバの時刻がよくズレているので気づいた時に手動で ntpdate を叩いていたのですが、当たり前ですが面倒くさくなってきたので、一日一回、自動で起動するようにしてみました。
シェルファイル(.sh)を作成するのと、作成しない2パターンを忘備録としてポストしておきます。
なお ntp はインストールされているものとします。
ntpdateのパスを確認する
rootユーザでログインし、インストールされている ntpdate のパスを確認。
1 2 |
# which ntpdate /usr/local/bin/ntpdate |
↑ which コマンドでパスを調査
shファイルを作成するパターン
1 |
# cd /var/develop/public_html/ |
↑ シェルファイルを設置する(任意の)ディレクトリへ移動。
1 |
# vi /var/www/develop/public_html/ntp.sh |
↑ ファイル名を指定して vi を起動することで、新規ファイルを作成できます。
先ほど確認したパスを含む、下記のコマンドを記述します。
/usr/local/bin/ntpdate ntp1.jst.mfeed.ad.jp
Esc → : w p → Enterで保存します。
1 2 3 4 |
# ls -al drwxrwxr-x 10 root ebroad 4096 4月 3 09:52 . drwxrwxr-x 3 root ebroad 4096 6月 27 2011 .. -rw-r--r-- 1 root root 29 4月 3 09:52 ntp.sh ←★できあがったシェルファイル |
1 |
# chmod 755 ntp.sh |
↑ パーミッションを 755 とし、実行権限を与えます
1 2 3 4 |
# ls -al drwxrwxr-x 10 root ebroad 4096 4月 3 09:52 . drwxrwxr-x 3 root ebroad 4096 6月 27 2011 .. -rwxr-xr-x 1 root root 29 4月 3 09:52 ntp.sh ←★変更されました |
cron作成
1 |
# crontab -e |
↑ crontabエディタ(vi)を起動します。
毎時5分に起動させてみます。
改行はせず、一行で書いてください。
5 * * * * /var/www/develop/public_html/ntp.sh
Esc → : w p → Enterで保存します。
shファイルを作成しないパターン
シェルファイルを作成するのが面倒な場合は、直接crontabでntpdateを起動させてみでもOKです。
今回、私はコチラを採用しました。
cron作成
1 |
# crontab -e |
同じく、毎時5分に起動させてみます。
改行はせず、一行で書いてください。
5 * * * * /usr/local/bin/ntpdate ntp1.jst.mfeed.ad.jp
基本は上記記述でよいですが、動いているか分からないのでログを別途出力してみます。
改行はせず、一行で書いてください。
5 * * * * /usr/local/bin/ntpdate ntp1.jst.mfeed.ad.jp>>/var/log/ntplog/ntpdate.log 2>&1
Esc → : w p → Enterで保存します。
1 2 |
# cd /var/log # mkdir ntplog |
↑ ntpdateログ用のディレクトリを作成します。
ログファイルを見ることで毎時5分に実行されているかを確認できます。
1 2 3 4 5 6 |
# cd ntplog # ls -al 合計 16 drwxr-xr-x 2 root root 4096 4月 3 11:49 . drwxr-xr-x 11 root root 4096 4月 3 11:46 .. -rw-r--r-- 1 root root 87 4月 3 11:49 ntpdate.log ←★作成されたログ |
ログを確認。
1 2 |
# tail ntpdate.log 3 Apr 11:49:09 ntpdate[21983]: adjust time server 210.173.160.27 offset -0.010939 sec |
↑ きちんと動作し、ログファイルへも書かれていることが確認できました。
これで時間がずれることはなくなりました。
上記の例では毎時、時刻を合わせていますが、ログが大量に出るので、1日1回ぐらいにするのがベターだと思われます。