Бо я унікальны рыўком і пісаць жудасна 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"]

Так што само па сабе робіць заказ гэта займае 2-й IP-адрас і супаставіць іх, калі яны ідэнтычныя упушчана, калі розныя абнаўлення. У папярэдняй версіі я прапусціў вельмі важную памылку па нейкай прычыне сцэнар я вырашыў, што IP = “” (нищо) и пренаписало конфигурацията на bind-а ми с празно поле и при следващата смяна вече не може да пренапише правилно конфигурацията което води липса на връзка с nameservr-a. Малоумно нали 😉