* 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