前から使っているDynamicDNSの自動更新をMacに導入

タイムマシーンがとんだことにより, 一からやりなおす.

ddclientのインストール

# brew install ddclient

ddclinet.confの設定
DynamicDNSのサポートで設定ファイルを作ってくれるので
そこから流用する

## ddclient configuration file
daemon=600
# check every 600 seconds
syslog=yes
# log update msgs to syslog
mail-failure=**メールアドレス** # Mail failed updates to user
pid=/Library/StartupItems/ddclient/ddclient.pid
# record PID in file.
## Detect IP with our CheckIP server
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
## DynDNS username and password here
login=**ログインID**
password=**パスワード**
## Default options
protocol=dyndns2
server=members.dyndns.org
## Dynamic DNS hosts
**ドメイン**,**ドメイン**

自動起動するための設定

# cd /Library/StartupItems
# mkdir ddclient

ddclientのエイリアスの作成

# cd /Library/StartupItems/ddclient
# ln -s /usr/local/sbin/ddclient ./ddclient.pl

ddclient.confを/Library/StartupItems/ddclientに移動させる
ddclient.confの中身


自動起動させるためのStartupParameters.plistの作成
依存関係などを記述するらしい

# cd /Library/StartupItems/ddclient
# vi StartupParameters.plist

StartupParameters.plistの中身

{
Description = "Dynamic DNS Updating client";
Provides = ("Dynamic DNS Updater");
Requires = ("Disks");
Uses = ("Disks");
OrderPreference = "None";
}

起動バッチの作成

# cd /Library/StartupItems/ddclient
# vim ddclient

ddclientの中身

#!/bin/sh

##
# ddclient
##

. /etc/rc.common

StartService ()
{
ConsoleMessage "Starting ddclient"
cd /Library/StartupItems/ddclient
./ddclient.pl -file ./ddclient.conf -cache ./ddclient.cache
}

StopService ()
{
ConsoleMessage "Stopping ddclient"
cd /Library/StartupItems/ddclient
kill `cat ./ddclient.pid`
}

RestartService ()
{
ConsoleMessage "Restarting ddclient"
cd /Library/StartupItems/ddclient
kill `cat ./ddclient.pid`
./ddclient.pl -file ./ddclient.conf -cache ./ddclient.cache
}

RunService "$1"

最後に起動するか確認

# SystemStarter -d start "Dynamic DNS Updater"
# SystemStarter -d stop "Dynamic DNS Updater"
# SystemStarter -d restart "Dynamic DNS Updater"