IP = IP? ... aber bei cron nicht

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
-zuse-
Beiträge: 36
Registriert: 30.07.2003 09:08:33

IP = IP? ... aber bei cron nicht

Beitrag von -zuse- » 15.01.2004 10:18:10

Hallo,

ich habe ein Skript, das prüft, ob mein dynamischer hostname auch auf meine richtige IP zeigt. Wenn das so ist, soll es also nichts machen.

Wenn ich es von Hand starte funktioniert das auch, aber wenn ich es von cron starten lasse, updatet es IMMER die dns-namen.

Code: Alles auswählen

function check_hostname() {
  IP=`ifconfig ppp0 | grep inet | awk '{print $2}' | sed s/Adresse://`
  HOSTIP1=`xxx wghome.homeip.net | awk '{print $3}'`
  HOSTIP2=`xxx zuse.darktech.org | awk '{print $3}'`

echo "ip=$IP" > /root/test
echo "h1=$HOSTIP1" >> /root/test
echo "h2=$HOSTIP2" >> /root/test

  if [ $IP != $HOSTIP1 ];
  then
    lynx -auth=xxx:xxx -source "http://members.dyndns.org:8245/nic/update?system=dyndns&hostname=xxx.homeip.net&myip=$IP&wildcard=OFF" > /dev/null
    echo `date +"%b %d %T"` `hostname` ctrlme: dynamic hostname xxx.homeip.net updated >> /var/log/messages
  fi

  if [ $IP != $HOSTIP2 ];
  then
    echo -e "GET /api/autodns.cfm?id=xxx&pw=xxx&client=BSD HTTP/1.1\nHost: www.dtdns.com\nUser-Agent: bash\n\n" | netcat www.dtdns.com 80 > /dev/null 2>&1
    echo `date +"%b %d %T"` `hostname` ctrlme: dynamic hostname xxx.darktech.org updated >> /var/log/messages
  fi

}
testweise lasse ich mir die IPs mal nach /root/test ausgeben. Das sieht dann so aus:
ip=217.80.139.141
h1=217.80.139.141
h2=217.80.139.141

Die sind zwar alle gleich, trotzdem kommt ein Eintrag in /var/log/messages, d.h. also sie sind bei ihm nicht gleich!

Woran kann das liegen?

mfg
-zuse-

DaTa
Beiträge: 12
Registriert: 26.01.2004 23:19:28
Kontaktdaten:

Beitrag von DaTa » 26.01.2004 23:35:51

Warscheinlich ist deine PATH environment variable anders, wenn du eingeloggt bist, und er kann dann irgendwelche programme nicht finden, was zu leeren Variablen fuehrt...

Lass dir doch mal $PATH ausgeben und schau noch, ob alle verwendeten Programme dort gefunden werden koennen, wenn nicht, musst du entweder PATH im skript anders setzen, oder den absoluten pfad verwenden.

Antworten