Quantcast
Channel: huskyの備忘録 » Linux
Viewing all articles
Browse latest Browse all 9

NTPでのProxy越え

$
0
0

UNIX、Linuxで、proxyが設定されたネットワークから
外部のNTPサーバを参照する方法を、調べていたものの答えを見つけることができなかった。
なので、NTPでのProxy越えは、出来ない!と結論付けてみました。

でも、出来ない!だけでは色々と困ったりするので何とか解決できないかと以下を採用。

方法としては、HTTP経由で外部のNTPサーバと同期を取る。
事前にwgetコマンドのインストールと、proxyサーバの設定を実施しておく必要あり。

HTTPで標準時刻を公開しているサーバ
引用元
日本標準時プロジェクト 公開NTP サービス対応クライアントリスト

タイムスタンプ URL オプション
NTP https://ntp-a1.nict.go.jp/cgi-bin/ntp  
http://ntp-a1.nict.go.jp/cgi-bin/ntp
http://ntp-b1.nict.go.jp/cgi-bin/ntp
POSIX https://ntp-a1.nict.go.jp/cgi-bin/jst  
http://ntp-a1.nict.go.jp/cgi-bin/jst
http://ntp-b1.nict.go.jp/cgi-bin/jst
JSONP https://ntp-a1.nict.go.jp/cgi-bin/jsont ?Time
http://ntp-a1.nict.go.jp/cgi-bin/jsont
http://ntp-b1.nict.go.jp/cgi-bin/jsont
時分秒 https://ntp-a1.nict.go.jp/cgi-bin/time ?TZ
http://ntp-a1.nict.go.jp/cgi-bin/time

同期方法
上記のURLから標準時刻文字列をwgetコマンドで取得し、
取得した文字列をdateコマンドで設定するシェルをcronで実行する。

シェル
clockSync.sh

#!/bin/sh

# 情報通信研究機構の標準時刻提供ページから現在時刻をテキストとして取得
wget http://ntp-a1.nict.go.jp/cgi-bin/time -O ntpTime.txt > /dev/null 2>&1
if [ $? -ne 0 ] ; then
    logger “情報通信研究機構の標準時刻提供ページからの現在時刻取得に失敗しました。”
    exit 1
fi

# テキストファイルの内容を変数に取得
TIME_STR=`cat ntpTime.txt`

# テキストファイルを削除
rm -f ntpTime.txt

# 変数の値で時刻を設定
date -s “${TIME_STR}” > /dev/null 2>&1
if [ $? -ne 0 ] ; then
    logger “時刻設定に失敗しました。取得時刻 -=> “${TIME_STR}
    exit 1
fi

上記のシェルを、/etc/cron.hourly ディレクトリへ配置しておくことで1時間置きに同期処理が実行される。


Viewing all articles
Browse latest Browse all 9

Trending Articles