私はユニークなジャークだと恐ろしくmarlivと中途半端なコードを書くための, 私は、全体の夜のために私をホストしているマシンへのアクセスなしで残します. 問題は些細な愚か者が、時間の任意の考えをであることが判明しました.

#!/bin/bash -x
wget http://checkip.dyndns.org/ -O /tmp/ipaddr
IPADDR=$(cat /tmp/ipaddr | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>')
IPADDROLD=$(cat /tmp/ipaddr_old | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>')

if [ "$IPADDR" != "$IPADDROLD"  -a "$IPADDR" != "" ]
then
 sed -i "s/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/$IPADDR/" /etc/bind/neo2shyalien.eu
 /etc/init.d/bind9 restart
 echo "server localhost" > /tmp/nsupdate
 echo "zone neo2shyalien.eu" >> /tmp/nsupdate
 echo "update delete ns.neo2shyalien.eu. A" >> /tmp/nsupdate
 echo "update delete ns.neo2shyalien.eu. CNAME" >> /tmp/nsupdate
 echo "update add ns.neo2shyalien.eu. 38400 A $IPADDR" >> /tmp/nsupdate
 echo "update add *.neo2shyalien.eu. 38400 CNAME ns.neo2shyalien.eu." >> /tmp/nsupdate
 echo "show" >> /tmp/nsupdate
 echo "send" >> /tmp/nsupdate
 echo "" >> /tmp/nsupdate
 /usr/bin/nsupdate -k /etc/Kns.neo2shyalien.eu.+157+59417.private -d /tmp/nsupdate
 mv /tmp/ipaddr /tmp/ipaddr_old
fi

これは、今誤らないだろうスクリプトを補正しています. 今すぐスクリプトを作るかを説明するために、問題の一部であったところ、私は説明します. 少なくとも私は、動的パブリックIPをしました. 私は、マシンの設定を変更するために変更した場合、私のアドレスの変更をチェックするために、上記のスクリプトを入れて、自分のドメインのための情報を送信します, 変更. 総合的な些細なスクリプトが、私は恐ろしく認知症の省略を行いました. あなたは、アドレスの変更をチェックする部分で

if [ "$IPADDR" != "$IPADDROLD"  -a "$IPADDR" != "" ]

それがあった前に

if [ "$IPADDR" != "$IPADDROLD"]

オーダー自体が行うので、これは第二のIPアドレスを取り、彼らは別のアップデート場合逃し同一である場合、それらを照合します. 以前のバージョンでは、私は、スクリプトが、私は私のIP =と決めていたいくつかの理由で非常に重要なエラーを逃していました “” (нищо) и пренаписало конфигурацията на bind-а ми с празно поле и при следващата смяна вече не може да пренапише правилно конфигурацията което води липса на връзка с nameservr-a. Малоумно нали 😉