2-1-17. cron で MyDNS にIPアドレスを自動通知する設定 その2

スクリプトに "cd /; /usr/bin/***" と書く

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

(CRON) error (grandchild #1662 failed with exit status 2)
バージョンアップをした結果、
従来と同じ設定では動かなくなった。
"cd /; /usr/bin/***" と書かねばならない。

①. postfix というメールソフトをインストール
	sudo apt-get install postfix
	メールシステムがなければ、(No MTA installed, discarding output)
	という、エラーメッセージが出る。
	local Only でインストール。
	System mail name は xxxxx とすると root@xxxxx となる。
	sudo /etc/init.d/postfix reload
	
	※:cron で mydns に ipアドレスを通知した結果は、
	  MTA により postfix のメールボックスに書き込まれるので、
	  sudo cat /var/mail/root
	  で、その内容が参照できる。
	
②. cronで実行するスクリプト用のディレクトリを作成
	sudo mkdir /etc/cron.everyday/
 
③. MyDNS.jpへの通知用スクリプトを作る → mydns.sh
	sudo nano /etc/cron.everyday/mydns.sh
	/usr/bin/*** を実行する場合は、"cd /; /usr/bin/***" と書く。
	
	下記例は、2つのドメインのIPアドレスを、同時に通知している例。
	
	#!/bin/sh
	
	# mydns.JP
	cd /; /usr/bin/wget -O - 'http://mydnsID-1:mydnsPASS-1@www.mydns.jp/login.html'
	cd /; /usr/bin/wget -O - 'http://mydnsID-2:mydnsPASS-2@www.mydns.jp/login.html'

④. cronの設定ファイルに追記
	sudo crontab -e
	MAILTO='' ← これで、メールの出力を止める。
	12 7 * * * run-parts /etc/cron.everyday/mydns.sh
	 ← と、実行時刻を定時きっかりにしない。
	 
	ここで設定する crontab は、ユーザーの crontabファイル で、
	/var/spool/cron/crontabs/ に格納される。


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

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

⑦. cronに設定を再読み込みさせる
	/etc/init.d/cron reload
	
⑧. cron関連コマンド
	・稼働状況の確認 → /etc/init.d/cron status
	・2-5番までがonになっているか → chkconfig --list cron
	・cron のログ出力 → sudo nano /etc/rsyslog.conf
	・cron のログレベルの設定 → sudo nano /etc/default/cron
	  → EXTRA_OPTS='-L 15' を追記
	・ログファイルの確認 → sudo tail -f /var/log/cron.log
	・ログファイルの確認 → sudo cat /var/log/cron.log
	・syslogの内容表示 → sudo cat /var/log/syslog
	・cronの設定ファイルの編集 → sudo nano /etc/crontab

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

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






関連ページ