Poiché io sono scatto unico e scrivere il codice orribilmente marliv e cotto a metà, Lascio che non hanno accesso alla macchina mi ospita per tutta la notte. Il problema si è rivelato essere un imbecille banale, ma ogni pensiero di tempo.

#!/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

Questo è ora corretto script che non sbagliare. Mi spiego dove era il problema ora parte per spiegare ciò che rende lo script. Almeno io ho un IP pubblico dinamico. Ho messo lo script qui sopra per verificare la presenza di un cambiamento nel mio indirizzo se è cambiata per modificare le impostazioni della macchina e invia le informazioni per il mio dominio, un cambiamento. sceneggiatura banale Nel complesso, ma mi è stato fatto omissione orribilmente demente. Nella parte in cui si controlla per un cambiamento di indirizzo

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

prima che fosse

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

Così fine si fa questo richiede l'indirizzo IP 2 ° e raccogliere loro se sono identici perso se diversi aggiornamenti. Nella versione precedente, che avevo perso un errore molto importante per qualche motivo lo script mi ​​aveva deciso che io IP = “” (нищо) и пренаписало конфигурацията на bind-а ми с празно поле и при следващата смяна вече не може да пренапише правилно конфигурацията което води липса на връзка с nameservr-a. Малоумно нали 😉