Server の時間調整を自動化する(CRONの設定を兼ねる)

  • 頁名: 日誌/進捗/平成26年度
  • 投稿者: 万屋
  • 優先順位: 普通
  • 状態: 完了、終了
  • 種別: 自由な研究/PC/Server
  • 投稿日: 2014-05-06 (火) 15:20:57
  • 段階、参照:

趣旨

 Web Server を運用している PC の時間調整を これまで、週に一度、Script で行っていたが、 それを自動化する。

課題

  1. TNPを使う
    1. 導入の検討
      1. Security の問題
  2. 一時間に一度程度の時間調整を行う。
    1. CRON を使う
      1. 設定

TNPを使う

 NTPを導入して、時間調整を行う事を検討する。

調査

 色々と調べ、以下の情報を参照した。

結論

 やはり結果的には、「 Systemを導入すると 相応の負担が生じる 」との観点から断念した。

 これは、「導入する事により、管理の負担が 軽減する事を目的としている」との観点からは、 逸脱しており、特に以下の観点での負担などが 問題視をされた。

 よって、「新たに System を導入すると、 管理の負担(保守の工数)が増えるだけで、 それに伴う利益性も無いことから、導入を 断念する」と判断した。

 なお、後に必要場合には、改めて導入の 検討を行う。

ntpdate-debian を使う

 Ubuntu では、ntpdate-debian(時間の 同期をする Command :登録されている NTP Server を使って、 時間の同期を行う。また登録の内容は、変更が可能)の Command が予めに導入されているので、それを 利用する事を検討する。

 又、定期的に Command を実行(作業)させる ために、CRON(Wikipedia)を使う ことを検討する。

CRON に付いて

 CRON は、既に標準で導入をされている 機能なので、それを使って自動的にと、 時間の同期(調整)作業を行わせる事が 可能である。

 でも、sh Script(シェルスクリプト; Wikipedia) が、別途で必要とされる。

設定

 一時間に一度、ntpdate-debian を起動させて 時間の調整を行う設定を行う。

(一)ntpdate-debian の設定を変更

/etc/default/ntpdate の内容を変更

NTPDATE_USE_NTP_CONF=no
NTPSERVERS="ntp.nict.jp"
NTPOPTIONS=""

私が変更したの下記の部分だけ。

NTPDATE_USE_NTP_CONF=no
NTPSERVERS="ntp.nict.jp"

 各項目の説明に付いては、以下を参照されたい。

(ニ)CRON の設定

 /etc/cron.hourly/に、ntpdate等の(自由な)名称で sh(Shell Script File)を置き、その内容を以下のようにする。

#!/bin/sh
ntpdate-debian -s

 Option(オプション)の -s は、「実行の Log を Command line に 表記せず、Syslog へと記載すること」を意味する。

 なお、設置した sh には、必ず実行権限(755)を設定する。

sudo chmod 755 ntpdate

 設定的には、これで全てと成る。

補足 普通の CRON 設定で対処する

 設定(ニ)の他に、通常のCRON設定でも可能である。

(甲)sh(私の場合には、ntpdate) の置き場所を変更する
 作成した sh を /usr/local/sbin/ に置く。

※ 設置した sh には、必ず実行権限(755)を設定する。

sudo chmod 755 ntpdate

(乙)CRONの設定
root 権限で設定を行う。
※ User だと、時間の変更(修正)を行えない。

$ sudo crontab -e

毎時 0分(1時間おき)で実行

0 * * * * /usr/local/sbin/ntpdate
  • 参照
    • crontab の書き方 - UNIX ( Linux FreeBSD )コマンドメモ
      • 実行時間の設定に付いて解り易く記載されている。

 これで設定は、全てと成る。

稼動の確認

 Syslog の内容を見て確認を行う。

$moer /usr/log/syslog | grep ntpdate

 実行されていれば、記録が表示をされる。

実行が行われて無い可能性が有る。

CRON に設定した Task(タスク) の稼動確認

$ moer /usr/log/syslog | grep CRON

 この Command を入力した時は、 cron を大文字で検索する。

 表示された内容に、ntpdateが無い場合は、 稼動して無い可能性がある。

考えられる不具合の原因

  1. 作成した File(sh File)に実行権限を与えてない
    • sudo chmod 755 ntpdate
  2. 該当の File(私の場合には、ntpdate)が無い
    • ntpdate を適切な場所に置く
      • /etc/cron.hourly/
      • または、/usr/local/sbin/
  3. crontab を USER の権限で編集した - root とは、異なる crontab に記載*1している事を意味する
    1. USER の権限で編集(追記)を行った部分を削除する。
    2. 改めて、root の権限で crontab を編集する。
      • $ sudo crontab -e

*1 USER と root では、crontab -e で記載される場所が異なるようなので留意:表見上だと解り難い

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-12-10 (月) 03:50:43 (437d)