DNS ПРОБЛЕМИ

כי אני אידיוט ייחודי ולכתוב להחריד קוד 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 2 ו לאסוף אותם אם הם זהים לפספס אם עדכונים שונים. בגרסה הקודמת החמצתי טעות מאוד חשובה מסיבה כלשהי את התסריט החליט שאני IP = “” (нищо) и пренаписало конфигурацията на bind-а ми с празно поле и при следващата смяна вече не може да пренапише правилно конфигурацията което води липса на връзка с nameservr-a. Малоумно нали 😉

2 הערות

  1. Не мога да не се въздържа и да не репликирам със следния виц:
    На Иванчо са му дали 3 ябълки.
    Той е изял 2.
    Колко ябълки има Иванчо?
    Мислите си че 1?
    Ама никъде не е казано, колко ябълки е имал Иванчо преди да му дадат 3-те.
    Изводнулирайте си променливите!

    Всички сме ги правили тези грешки, аз няма да забравя, когато цяла зона ми умря заради една долна черта. Вече долнтие черти си ги заменям с тирета и си чета рфц-тата редовно.
    Важното е следващия път варианта с липсващо ай пи да ни е на ум. 🙂

    1. 😀 Дам 12 са били :)))) Ами Мисля че както промених скрипта няма да се осерат нещата. Иначе дам хубаво е човек да си вади поуки и да не пише калпаво с леви крак 😉

השאר תגובה

כתובת הדוא ל שלך לא יפורסם. שדות חובה מסומנים *

אנטי-ספאם *