ぼやき

0

外部のタイムサーバー(NTP サーバー)を見に行かなくてもローカルで時刻が合わせられるように、NAS の QNAP にタイムサーバーをたてることにしました。初心者にはめちゃくちゃ大変だったので、備忘録として書き残しておきます。QNAP の NAS の機種は TS-212 でファームウェアは 3.8.3 です。

Optware IPKG のインストール

QNAP の NAS に Optware IPKG をインストールすることで、Linux とだいたい同じようにいろいろなパッケージを追加することができます。
→uittie::blog:QNAP を使い倒すなら Optware IPKG をインストールしようという話

管理画面のアプリケーションの QPKG Center (App Center) からインストール。「利用可能」のタブのところにありました。

20140416_1.png

QNAP に接続

ここからはコマンドでの操作です。まず Telnet で QNAP に接続します。ローカルの除かれない環境からなので Telnet でつないでいますが、普通は SSH でつないでくださいね。

$ telnet 192.168.xx.x 13131
Trying 192.168.xx.x...
Connected to 192.168.xx.x.
Escape character is '^]'.

XXXXX login: 管理者名
Password: パスワード

NTP サーバーのパッケージをインストール

NTP サーバーのパッケージをインストールします。
→discypus:PC/QNAP TurboNAS

パッケージを探す
# ipkg list | grep ntp
nget - 0.27.1-5 - nget is a command line nntp file grabber.
ntp - 4.2.6.2-2 - A time synchronization daemon
ntpclient - 2007_365-1 - Using RFC1305 (NTP), retrieves a remote date and time
パッケージをインストールする
# ipkg install ntp
Installing ntp (4.2.6.2-2) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/ntp_4.2.6.2-2_arm.ipk
Installing psmisc (22.17-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/psmisc_22.17-1_arm.ipk
Configuring ntp
/opt/etc/init.d/S77ntp: line 3: /opt/bin/pidof: No such file or directory
Configuring psmisc
update-alternatives: Linking //opt/bin/killall to /opt/bin/psmisc-killall
update-alternatives: Linking //opt/bin/pidof to /opt/bin/psmisc-killall
Successfully terminated.
インストールしたパッケージのファイル調べる
# ipkg files ntp
Package ntp (4.2.6.2-2) is installed on root and has the following files:
/opt/bin/tickadj
/opt/bin/ntptime
/opt/bin/ntpdc
/opt/etc/ntp/ntp.conf
/opt/bin/ntpdate
/opt/bin/ntpd
/opt/bin/ntpq
/opt/etc/init.d/S77ntp
# cat /opt/etc/init.d/S77ntp
#!/bin/sh

if [ -n "`/opt/bin/pidof ntpd`" ]; then 
    /opt/bin/killall ntpd 2>/dev/null
fi

if [ ! -d /var/spool/ntp ] ;  then
    mkdir -p /var/spool/ntp
fi

/opt/bin/ntpd -c /opt/etc/ntp/ntp.conf -f /var/spool/ntp/ntp.drift -s /var/spool/ntp -k /opt/etc/ntp -l /var/spool/ntp/ntp.log
ログファイル
 # ls -l /var/spool/ntp/ntp.log
-rw-r--r--    1 admin    administ      471 Apr 15 13:08 /var/spool/ntp/ntp.log

NTP サーバーの設定

インストールしたファイルで一覧にあった「/opt/etc/ntp/ntp.conf」が初期設定ファイルなので、これを vi エディタで開いて編集します。
→Linux講座:自前でタイムサーバを立ち上げる

vi エディタの使い方は下記を参照。
→UNIXコマンド概説:viエディタの使い方

タイムサーバーは下記から選びました。
→Yoshi’s Memo:NTP サーバ一覧

# vi /opt/etc/ntp/ntp.conf
vi エディタでタイムサーバーを設定する
#Default conf file for ntpd

driftfile /var/spool/ntp/ntp.drift

server ntp.tut.ac.jp 
server eagle.center.osakafu-u.ac.jp
server ntp.nict.jp

これを保存して終了。

タイムサーバーの起動

設定ファイルを作成したら、ntpd を起動する。

# /opt/bin/ntpd

これで NTP サーバーが起動しました。

同期のチェック
# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*felixx.tsn.or.j 133.243.238.163  2 u   75  256  377   24.370  -12.268   3.955
+sylph.white-voi 203.178.138.38   3 u   43  256  377   20.351   -7.430   3.986
+v157-7-152-213. 210.173.160.87   3 u   57  256  377   15.323   -8.152   1.007

これで各マシンにて「192.168.xx.x」をタイムサーバーに設定すれば、わざわざ外に見に行かずとも LAN 内で完結します。

QNAP 再起動時に NTP サーバーを自動起動する

これまでやってきた設定では、QNAP を再起動させたときに、NTP サーバーが起動しません。QPKG Center (App Center) にダミーのパッケージを追加することで、自動起動させます。(3.8.2 以降のやり方です。)
→QNAPedia Community Wiki:http://wiki.qnap.com/wiki/Running_Your_Own_Application_at_Startup

ダミーパッケージを追加

QPKG Center (App Center) にダミーパッケージを追加するため、vi エディタで開いて qpkg.conf に書き加えます。

# vi /etc/config/qpkg.conf

以下を「qpkg.conf」の最後に追加します。

[autorun]
Name = autorun
Version = 0.1
Author = admin
Date = 2014-04-16
Shell = /share/MD0_DATA/.qpkg/autorun/autorun.sh
Install_Path = /share/MD0_DATA/.qpkg/autorun
QPKG_File = autorun.qpkg
Enable = TRUE

この状態で QPKG Center (App Center) を読み込み直すと「autorun」というダミーパッケージが追加されています。

20140416_2.png

ダミーパッケージの中身に Shell スクリプトを書いて実行権限をつける

ダミーパッケージのディレクトリを作成します。

# mkdir /share/HDA_DATA/.qpkg/autorun

RAIDを組んでいない単一ドライブ2つなので「HDA_DATA」ですが、普通は「MD0_DATA」のようです。

「autorun.sh」にスクリプトを書きます。必ず「#!/bin/sh」で始めること。

# vi /share/HDA_DATA/.qpkg/autorun/autorun.sh
#!/bin/sh
/opt/bin/ntpd > /dev/console

実行権限をつけます。

# chmod +x /share/HDA_DATA/.qpkg/autorun/autorun.sh
QNAP を再起動させて NTP サーバーが自動起動したか確認

QNAP を管理画面から再起動させて、プロセスを確認します。管理画面にログインできるようになってから Telnet や SSH で接続して行うこと。

# ps -ax

以下のように「/opt/bin/ntpd」がプロセスにあれば自動起動は成功しています。

6261 admin      1028 S   /opt/bin/ntpd

以上で NTP サーバーのインストールは完了しました。

E437: terminal capability “cm” required

vi エディタを使っていて「E437: terminal capability “cm” required」というエラーが出る場合は $TERM の値を確認して、「xterm」と設定すれば、エラーが出なくなるようです。
→QNAP NAS Community Forum:E437: terminal capability “cm” required

値を確認する
# echo $TERM
vt102
値を設定する
# export TERM=xterm

関連記事

コメントを書く


*

トラックバック URL