■ Fedora7 / Fedora8 / Fedora9
DiCEのプロセスのCPUが常に高い使用率になってたので、DiCEを使わないでIPアドレスを自動更新させるようにしました。10分毎にIPアドレスをチェックして、IPアドレスに変更があった時のみDDNSサーバ(Dynamic DO!.jp)に対しIPアドレスの更新を行うようにします。
[root@server ~]# cd /usr ← /usr ディレクトリへ移動 [root@server usr]# mkdir -p ddns ← ddns ディレクトリの作成 [root@server usr]# cd ddns ← ddns ディレクトリへ移動
■ 自動更新スクリプトの作成 スクリプトはこちらのスクリプトを利用させて頂きました。
[root@server ddns]# vi ddo.jpIP_upgrade.pl
#!/usr/bin/perl
#
$CRT_IPF = '/usr/ddns/CRT_IP.dat';
$NEW_IPF = '/usr/ddns/NEW_IP.dat';
$LOG = '/var/log/ddns.log';
open INPUT,"$CRT_IPF";
$CRT_IP=<INPUT>;
close INPUT;
system("wget -q -O $NEW_IPF http://info.ddo.jp/remote_addr.php");
open(INPUT,$NEW_IPF);
$c = <INPUT>;
$stp = index($c,"REMOTE_ADDR:")+12;
$edp = length($c);
$NEW_IP = substr($c,$stp,($edp-$stp));
close(INPUT);
if ($NEW_IP ne "" and $CRT_IP ne $NEW_IP) {
open (OUTPUT ,">$CRT_IPF");
print OUTPUT $NEW_IP;
close OUTPUT;
print "IP Address update: $CRT_IP to $NEW_IP\n";
system("wget -q -O - 'http://ddo.jp/dnsupdate.php?dn=ドメイン&pw=パスワード'");
$now_string = localtime;
open (OUTPUT ,">>$LOG");
print OUTPUT "$now_string DDNS IP Address Updated. $CRT_IP to $NEW_IP\n";
close OUTPUT;
}
■ スクリプトに実行権限を与える
[root@server ddns]# chmod +x ddo.jpIP_upgrade.pl
■ スクリプトの起動
[root@server ddns]# cd [root@server ~]# /usr/ddns/ddo.jpIP_upgrade.pl IP Address update: to 121.113.208.81 <html><body> <a href="http://ddo.jp/">Dynamic DO!.jp</a><br> SUCCESS: yokensaka.com <= [ 121.113.208.81 ]<br> IPアドレス更新完了<br> 2007/06/23 18:45:52<br> <input type="button" value="閉じる" onclick="window.close();"> </body></html>
■ プログラムを08分~58分の10分おきに自動実行できるようにcronの設定ファイルに追加
[root@server ~]# crontab -e 08,18,28,38,48,58 * * * * /usr/ddns/ddo.jpIP_upgrade.pl 00 07 * * 0 rm -f /usr/ddns/CRT_IP.dat
ddo.jpは、IPアドレス更新リクエストが毎時00分前後の数秒に集中しており、サーバ負荷の増大に伴い、その間の更新リクエストが失敗する場合ありますので、自動更新処理は毎時00分を避け08分~58分の10分おきに設定しました。また、日曜日の午前7時にCRT_IP.datを強制削除するようにして、次のチェックタイミングに自動更新を行うようにしました。
※ 追記 (2008/02/17)
■ 停電などで再起動させたとき自動で実行するように設定
[root@server ~]# vi /etc/rc.local ← システム起動時実行コマンド定義ファイル編集 以下を最終行へ追加 chmod +x /usr/ddns/ddo.jpIP_upgrade.pl /usr/ddns/ddo.jpIP_upgrade.pl