Guten Tag zusammen, dank der sehr nützlichen Script-Beispiele die in der Liste veröffentlicht wurden (Danke an Juergen Schwarting und Manfred Tremmel), konnte ich die Übermittlung (m)einer IP-Adresse an eine HTML-Seite ohne Probleme bewerkstelligen, solange ich das Script aus der "bash" aufrufe. Per Cronjob aufgerufen, erhalte ich als HTML-Ausgabe jedoch keine verwertbaren Ergebnisse (NEUE_IP bzw. meine_ip) beinhaltet kein Ergebniss). Könnte mir jemand erklären, was denn nun der Unterschied zwischen "Manuellen und Cronjob-Aufruf" ist. Zum besseren Verständniss: #!/bin/sh meine_ip=`/sbin/ifconfig ppp0 | grep 'inet Adresse' | cut -f2 -d":" | cut -f1 -d" " | awk '{ print $1 }'` cat /usr/local/httpd/htdocs/index.html1.de | sed -e "s/NEUE_IP/${meine_ip}/g" > /usr/local/httpd/htdocs/index.html ncftpput -a -u [PW,Server usw] /usr/local/httpd/htdocs/index.html <----- Übertragung an den Server Vielen Dank Gerhard
* Gerd Reim schrieb am 01.Feb.2002:
dank der sehr nützlichen Script-Beispiele die in der Liste veröffentlicht wurden (Danke an Juergen Schwarting und Manfred Tremmel), konnte ich die Übermittlung (m)einer IP-Adresse an eine HTML-Seite ohne Probleme bewerkstelligen, solange ich das Script aus der "bash" aufrufe. Per Cronjob aufgerufen, erhalte ich als HTML-Ausgabe jedoch keine verwertbaren Ergebnisse (NEUE_IP bzw. meine_ip) beinhaltet kein Ergebniss). Könnte mir jemand erklären, was denn nun der Unterschied zwischen "Manuellen und Cronjob-Aufruf" ist.
Zum besseren Verständniss:
#!/bin/sh
meine_ip=`/sbin/ifconfig ppp0 | grep 'inet Adresse' | cut -f2 -d":" | cut -f1 -d" " | awk '{ print $1 }'`
cat /usr/local/httpd/htdocs/index.html1.de | sed -e "s/NEUE_IP/${meine_ip}/g" > /usr/local/httpd/htdocs/index.html
ncftpput -a -u [PW,Server usw] /usr/local/httpd/htdocs/index.html <-----
kann sein, daß das nicht im Pfad von cron steht. Besser den ganzen Pfad des Befehls angeben. Wie rufst Du das skript selber auf? Wird es aufgerufen? Bernd
Ich habe mich vielleicht etwas missverständlich ausgedrückt. Das folgende Script rufe ich "von Hand" auf. Die generierte HTML-Seite enthält dann anstatt des Platzhalters NEUE_IP, die derzeit aktuelle IP (http://NEUE_IP/verzeichnis/ wird zu http://123.123.123.123/verzeichnis/) Nun lasse ich das ganze Script von einem Cronjob starten. Die daraus resultierend HTML-Datei sieht nun so aus: http:///verzeichnis/. Die Stringersetzung findet also erst gar nicht statt. Wie gesagt, der manuelle Aufruf funktioniert. Was ich nicht verstehe ist, wo denn nun der Cronjob etwas anderes macht als der manuelle Aufruf.
#!/bin/sh
meine_ip=`/sbin/ifconfig ppp0 | grep 'inet Adresse' | cut -f2 -d":" | cut -f1 -d" " | awk '{ print $1 }'`
cat /usr/local/httpd/htdocs/index.html1.de | sed -e "s/NEUE_IP/${meine_ip}/g" > /usr/local/httpd/htdocs/index.html
ncftpput -a -u [PW,Server usw] /usr/local/httpd/htdocs/index.html <-----
kann sein, daß das nicht im Pfad von cron steht. Besser den ganzen Pfad des Befehls angeben. Wie rufst Du das skript selber auf? Wird es aufgerufen? Bernd
Vielen Dank für eure Unterstützung Gerhard
* On Sun, 03 Feb 2002 at 12:28 +0000, Gerd Reim wrote:
#!/bin/sh
meine_ip=`/sbin/ifconfig ppp0 | grep 'inet Adresse' | cut -f2 -d":" | cut -f1 -d" " | awk '{ print $1 }'`
cat /usr/local/httpd/htdocs/index.html1.de | sed -e "s/NEUE_IP/${meine_ip}/g" > /usr/local/httpd/htdocs/index.html
ncftpput -a -u [PW,Server usw] /usr/local/httpd/htdocs/index.html <-----
kann sein, daß das nicht im Pfad von cron steht. Besser den ganzen Pfad des Befehls angeben. Wie rufst Du das skript selber auf? Wird es aufgerufen?
Ich habe mich vielleicht etwas missverständlich ausgedrückt. Das folgende Script rufe ich "von Hand" auf. Die generierte HTML-Seite enthält dann anstatt des Platzhalters NEUE_IP, die derzeit aktuelle IP (http://NEUE_IP/verzeichnis/ wird zu http://123.123.123.123/verzeichnis/) Nun lasse ich das ganze Script von einem Cronjob starten. Die daraus resultierend HTML-Datei sieht nun so aus: http:///verzeichnis/. Die Stringersetzung findet also erst gar nicht statt. Wie gesagt, der manuelle Aufruf funktioniert. Was ich nicht verstehe ist, wo denn nun der Cronjob etwas anderes macht als der manuelle Aufruf.
Setze Dir im Skript mal entweder den Pfad selbst oder rufe alle Befehle mit ihrem vollen Namen auf (den Du z.B. einfach über "which cut" ermitteln kannst). In den cron-Skripts hast Du möglicherweise nicht den gleichen Pfad gesetzt wie auf der Kommandozeile. Siehe auch die ersten Zeilen von /etc/crontab, da wird ein Pfad gesetzt. #!/bin/sh PATH=/bin:/usr/bin:.... meine_ip=`/sbin/ifconfig ppp0 | grep 'inet Adresse' | cut -f2 -d":" | cut -f1 -d" " | awk '{ print $1 }'` [...] -- Adalbert PGP welcome, request public key: mailto:adalbert+key@lopez.at
On Fri, 01 Feb 2002, Gerd Reim wrote:
meine_ip=`/sbin/ifconfig ppp0 | grep 'inet Adresse' | cut -f2 -d":" | cut -f1 -d" " | awk '{ print $1 }'`
UAARRRGGHHHHHH..... Du hast dir quasi die schlechteste Methode ausgewaehlt, die aktuelle IP aus der Ausgabe von ifconfig zu extrahieren. ==== IF="${1:-ppp0}"; /sbin/ifconfig $IF | sed -n 's/.*addr:\([0-9\.]*\).*/\1/p'; ==== Das sind glatte 3 Prozesse weniger die aufgerufen werden muessen, zudem ist's weniger anfaellig... Achso, wenn das ganze in /etc/ppp/ip-up oder ip-up.local laeuft, dann steht die IP im Argument "$4", und der ganze Aufwand mit ifconfig ist ueberfluessig (siehe den anderen Thread)... meine_ip="$4" -dnh -- You come out of a woman and you spend the rest of your life trying to get back inside. -- sig stolen from James Cort
participants (4)
-
Adalbert Michelic
-
B.Brodesser@t-online.de
-
David Haller
-
Gerd Reim