כי אני אידיוט ייחודי ולכתוב להחריד קוד 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. Малоумно нали 😉
Не мога да не се въздържа и да не репликирам със следния виц:
На Иванчо са му дали 3 ябълки.
Той е изял 2.
Колко ябълки има Иванчо?
Мислите си че 1?
Ама никъде не е казано, колко ябълки е имал Иванчо преди да му дадат 3-те.
Извод – нулирайте си променливите!
Всички сме ги правили тези грешки, аз няма да забравя, когато цяла зона ми умря заради една долна черта. Вече долнтие черти си ги заменям с тирета и си чета рфц-тата редовно.
Важното е следващия път варианта с липсващо ай пи да ни е на ум. 🙂
😀 Дам 12 са били :)))) Ами Мисля че както промених скрипта няма да се осерат нещата. Иначе дам хубаво е човек да си вади поуки и да не пише калпаво с леви крак 😉