CentOS6 DiCEを使ったDDNSレコード更新

お名前.com がサービスしてくれている、”レンタルDNSレコード設定”が提供しているDDNSクライアントは、Windows版しか有りません。この為、Linuxで自宅サーバを作った時に、レコードが更新出来ず困ってしまいます。

これを解決してくれるのが、DiCE です。

親切なことに、バイナリで提供してくださっているのですが、環境によっては、必要なライブラリが見つからずに、うまく動かすことが出来ません。

今回CentOS6で使って見たんですが、この環境でもちょっとした追加の操作が必要でした。

で、忘れないように、その辺りをまとめて見ました。

DiCEの入手

  • DiCEのページから、Linux用のバイナリを入手します。

導入は、基本的にコマンドで行います。なので、入手もコマンド行った方が楽だと思います。

ということで、入手方法も次の作業手順の中で示します。

DiCEの導入

・wget で DiCEのバイナリを入手

[root@cent6 ~]# wget http://www.hi-ho.ne.jp/cgi-bin/user/yoshihiro_e/download.cgi?p=diced019

・入手したバイナリをインストール先にコピーして展開(今回は /usr/local/bin/ 配下に展開しました)

[root@cent6 ~]# cp diced01914.tar.gz /usr/local/bin/

[root@cent6 ~]# cd /usr/local/bin

[root@cent6 bin]# tar zxf diced01914.tar.gz

・必須ライブラリが見つかるかどうかチェック

[root@cent6 bin]# cd DiCE/

[root@cent6 DiCE]# ldd diced

linux-gate.so.1 => (0x0015f000)

libpthread.so.0 => /lib/libpthread.so.0 (0x004da000)

libdl.so.2 => /lib/libdl.so.2 (0x004d3000)

libc.so.6 => /lib/libc.so.6 (0x00160000)

/lib/ld-linux.so.2 (0x004b1000)

[root@cent6 DiCE]#

ちゃんと見つかってる。

でも、これ以外にも ssl/crypt のライブラリが指定のパスに存在している必要があります。

・上記ライブラリを準備

[root@cent6 DiCE]# ln -s /usr/lib/libssl.so.1.0.0 /lib/libssl.so

[root@cent6 DiCE]# ln -s /usr/lib/libcrypt.so /lib/libcrypt.so

あっ、、、設定するところをメモるの忘れた。。。(^^;)

b.n-at さんの記事がとても参考になります。そちらをご覧ください。

起動ファイルの準備

一応、CentOSの他のサービスと同じように、起動した時に OK とか出るような起動ファイルにしてみました。

[root@cent6 ~]# vi /etc/init.d/diced

#!/bin/sh

#

# chkconfig: 35 99 99

# description: DiCE

#

# processname: diced

#

. /etc/rc.d/init.d/functions

RETVAL=0

prog="diced"

lockfile=/var/lock/subsys/$prog

DICED="/usr/local/bin/DiCE/diced"

OPTIONS="-d"

start()

{

[ -x $DICED ] || exit 5

[ ! -e $lockfile ] || exit 1

echo -n $"Starting $prog: "

$DICED $OPTIONS && success || failure

RETVAL=$?

[ $RETVAL -eq 0 ] && touch $lockfile

echo

return $RETVAL

}

stop()

{

echo -n $"Stopping $prog: "

if [ -n "`pidofproc $DICED`" ] ; then

killproc $DICED

else

failure $"Stopping $prog"

fi

RETVAL=$?

[ $RETVAL -eq 0 ] && rm -f $lockfile

echo

}

restart() {

stop

start

}

case "$1" in

start)

start

;;

stop)

stop

;;

restart)

restart

;;

*)

echo $"Usage: $0 {start|stop|restart}"

RETVAL=2

esac

exit $RETVAL

[root@cent6 ~]# chmod 700 /etc/init.d/diced

[root@cent6 ~]# chkconfig --add diced

[root@cent6 ~]# chkconfig --list diced

diced 0:off 1:off 2:off 3:on 4:off 5:on 6:off

[root@cent6 ~]# service diced start

diced を起動中: =-=-=- DiCE DynamicDNS Client -=-=-=

Version 0.19 for Japanese

Copyright(c) 2001 sarad

DiCE Daemon Started !! [ OK ]

[root@cent6 ~]#