トイレのうず

QNAPのNASにローカルのタイムサーバー(NTPサーバー)をたててみた

当記事はアフィリエイト広告を掲載しています。

外部のタイムサーバー( 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) からインストール。「利用可能」のタブのところにありました。

QNAP 管理画面の QPKG Center に Optware IPKG を追加

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 」というダミーパッケージが追加されています。

QNAP 管理画面の QPKG Center にダミーパッケージを追加

ダミーパッケージの中身に 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

関連記事

QNAP TS-212 の単一ディスクの HDD を交換
QNAP
イートレンドで購入したWD Red 6TBの梱包
QNAP TS-212 に HDD を追加した
QNAP
QNAP TS-212
QNAP TS-212 で USB 接続の 6TB HDD がフォーマットできない
QNAP
WD Blue 6TB WD60EZRZ-RT
QNAP の NAS から Amazon プライム・フォトにバックアップする設定
WebサービスQNAP
LightroomからNASに写真を移動させると変更日が現在の時刻になってしまう
NAS の QNAP TS-453D と Mac mini 2018 を 2.5 GbE で直接接続
MacQNAP
2.5 GbEのUSBのLAN アダプターとカテゴリー6AのLANケーブル
節電のために QNAP のバックアップ用外付け HDD ケースを交換【 Logitec LHR-EJU3F 】
QNAP
ロジテック HDDケース LHR-EJU3F