DDNS自動更新スクリプトの改造

何故か頻繁にIPアドレスが変わる状態になったので、DDNS自動更新スクリプトを使用する事にした。今回はメモ書きなので、たいした説明入れない。本格的な解説に関しては、後日にページ作成するつもり。

私は家サーバープロジェクトからドメインを借りているので、そこで公開されているPerlスクリプトを使用する。このスクリプトは製作年から随分と経過しているが、特に問題なく使用は可能。とは言え文字コードがsjisだったり、FreeBSDではデフォルトでインストールされていないwgetが必要だったりするので、少し厄介だったりする。なので、その辺も含めてFreeBSDで扱いやすいように改造をする。

 

まずは家サーバー・プロジェクトのPerlスクリプトを貰ってくる。

http://ieserver.net/tools.html

私は内容コピペで、新規テキストファイルに貼り付け。
使用エディタはサクラエディタ。
そのままだと内容がSJISなので「設定」→「文字コードセット指定」でUTF8に変換。

完成したファイルをSCPにてファイル転送。
設置場所は「/root/script/ddns/
ファイル名は「ddns.pl
とした。ファイル名変更はSCPにて行った。
パーミッションは755に設定。

ファイルの設定はSCPにて行っても良いんだが、文字化けの確認なども含めてPuTTy上からVIMで行った。

 

スクリプトではwgetを使用する設定になっているが、FreeBSDではデフォルトでインストールされていないので「fetch」を使用するように変更する。

wgetが使われている部分は2ヶ所。変更すべき部分は「wget -q -O」で「fetch -q -o」に変更する。

後は、perlの場所を設定・アカウント名・ドメイン名・パスワードを設定して保存。
perlの場所は「which perl」で確認。
たぶんFreeBSDだと「/usr/local/bin/perl」となる。

 

ここまで終わったら、一旦、スクリプトを動作させてみる。

/root/script/ddns/ddns.pl

もしくは

perl /root/script/ddns/ddns.pl

エラー表示がされず、rootディレクトリに「ip_update.log」と「current_ip」が作成されていれば、問題なく動作したと言える。

 

後はcrontabに登録。

5,15,25,35,45,55 * * * * root /root/script/ddns/ddns.pl

テスト動作で作成された「ip_update.log」と「current_ip」を一旦消して、crontabで設定した時間が経過した後に再び作成されていれば、正常動作されていると思って問題ない。

 

コメントを残す

メールアドレスが公開されることはありません。