2-1-4. cron で MyDNS にIPアドレスを自動通知する方法

Raspberry Pi cron で MyDNS IPアドレスを自動更新
スクリプトにするとうまく行った


2017.01.21 バージョンアップ版はこちらを参照。

1. cron で MyDNS.jp に、IPアドレスを自動通知する

MyDNS.JPには、IPアドレスを最低1週間に一度通知しなければならない。
 この通知を怠ると
 ・一週間以上IPアドレスの通知がないと、エラーサイトに誘導します。
 ・一ヶ月以上ご利用がないと、全てのデータを削除しますのでご注意ください。
 と、なる。

 そこで cron で、IPアドレスを MyDns に自動通知するように試みる。

sudo crontab -e

上記コマンドを実行したら nano が起動するので、以下の行をファイルに書き足す。

0 3 * * * wget -q -O /dev/null http://mydnsID:mydnsPASS@www.mydns.jp/login.html

これで、午前3時に更新がかかるようになる。 → ハズであったが・・・

2. cron で MyDNS.jp への通知がうまく行かない

wget -q -O /dev/null http://mydnsID:mydnsPASS@www.mydns.jp/login.html

を、コマンドとして入力するとうまく行くが・・・

◆cron が実行されると、次のようなメッセージが出力される。
 No MTA Installed discarding output → MTA(Mail Transfer Agent):メーラーのこと
 そこで、postfix というソフトをインストール。
 sudo apt-get install postfix → local Only でインストールするが、
  → MyDNS.jp には通知されない。

◆PostfixでIPv6の警告が表示される
 warning: inet_protocols: disabling IPv6 name/address support:
  Address family not supported by protocol
 sudo nano /etc/postfix/main.cf ← 設定ファイルを開き、ipv4 だけにする
 inet_protocols = ipv4 ← この行を追加するが、  → MyDNS.jp には通知されない。

◆/etc/hosts の一番最後の行を自前のローカルIPに書き換える
 デフォルトでは 127.0.1.1 raspberrypi
 これを自前のIP 192.168.11.102 raspberrypi に書き換えてみるが、
  → MyDNS.jp には通知されない。

◆cron のログの変更と確認
 sudo cat /var/log/syslog → 特に問題があるようなメッセージはない。
 sudo nano /etc/rsyslog.conf ← で #cron.* /var/log/cron.log を編集し
 /var/log/cron.log にログファイルが作成されるようにする。
 sudo cat /var/log/cron.log → ログメッセージは空。
 さらに、cron に登録したコマンドを変更し、

 0 3 * * * wget -q -O result.log   http://mydnsID:mydnsPASS@www.mydns.jp/login.html
 sudo cat /var/log/result.log → ログメッセージは空。

 と、色々やってみるが、→ MyDNS.jp には通知されない。

3. スクリプトにすると、うまく行った

何故なのか、理由もわからず、cron に直接書くのではなく、スクリプトにしてみるとうまく行った。

①. cronで実行するスクリプト用のディレクトリを作成
	sudo mkdir /etc/cron.everyday/
 
②. MyDNS.jpへの通知用スクリプトを作る → mydns.sh
	sudo nano /etc/cron.everyday/mydns.sh
	#!/bin/sh
 	
	# mydns.JP
	/usr/bin/wget -O - 'http://mydnsID:mydnsPASS@www.mydns.jp/login.html'

③. cronの設定ファイルに追記
	sudo crontab -e
	0 3 * * * run-parts /etc/cron.everyday/mydns.sh

④. スクリプトに実行権限を与える
	sudo chmod +x /etc/cron.everyday/mydns.sh

⑤. 実際に使ってみる
	/etc/cron.everyday/mydns.sh

⑥. cronに設定を再読み込みさせる
	/etc/init.d/cron reload

参考:
★ 2つのドメイン で Dynamic DNS を運用する方法

★ WordPress版 MyDNSにIPアドレスを自動通知
 



スポンサー リンク




関連ページ


スポンサー リンク


スポンサー リンク