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

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

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

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

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

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

DiCEの入手

  1. 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 ~]#

Comments