Raspberry Pi cron で MyDNSにIPアドレスを自動通知

Raspberry Pi + nginx = Webサーバー
cron で MyDNSにIPアドレスを自動通知
 
Raspberry Pi cron で MyDNS 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時に更新がかかるようになる。 → ハズであったが・・・
 
 
結論:うまく行った通知方法
 
何故なのか、理由もわからず、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://mydnsID1:mydnsPASS1@www.mydns.jp/login.html’
/usr/bin/wget -O – ‘http://mydnsID2:mydnsPASS2@www.mydns.jp/login.html’
上記の例は、ドメインを2つ取得したので2行になっている。

③. 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 
 

これで、OKとなる!!

 
 
 
 
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 には通知されない

 

以上。
(2015.05.20 / 2016.08.12)

 

 

スポンサー リンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください