მე ვარ უნიკალური jerk და დაწეროთ horribly marliv და ნახევრად გამომცხვარი კოდი, გიტოვებთ ხელმისაწვდომობის მანქანა მასპინძლობს მე მთელი ღამე. პრობლემა აღმოჩნდა, რომ იყოს imbecile ტრივიალური, მაგრამ არც აზრები დრო.

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

ეს არის შესწორებული სკრიპტი, რომელიც არ ვცდები. მე ახსნას, სადაც იყო პრობლემა ნაწილი ახლა ახსნას, თუ რა ხდის script. მინიმუმ მე დინამიური საჯარო IP. მე დააყენა ზემოთ script შემოწმება ცვლილება ჩემი მისამართი, თუ შეიცვალა შეცვალოს მანქანა პარამეტრების და აგზავნის ინფორმაციას დომენი, ცვლილება. საერთო ტრივიალური script მაგრამ მე გაკეთდა horribly demented უმოქმედობის. იმ ნაწილში, სადაც თქვენ შეამოწმოთ შეცვლას მისამართი

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

ადრე იყო

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

ასე რომ, რათა თავად ხდის ეს იღებს 2 IP მისამართი და ადარებს მათ თუ ისინი იდენტურია გაშვებული თუ სხვადასხვა განახლება. წინა ვერსია გავაცდინე ძალიან მნიშვნელოვანი შეცდომა რატომღაც script მე გადავწყვიტე, რომ IP = “” (нищо) и пренаписало конфигурацията на bind-а ми с празно поле и при следващата смяна вече не може да пренапише правилно конфигурацията което води липса на връзка с nameservr-a. Малоумно нали 😉