Mailinglist Archive: opensuse-de (6022 mails)

< Previous Next >
Re: Shellscript und Cronjob
  • From: Adalbert Michelic <adalbert+list@xxxxxxxx>
  • Date: Sun, 3 Feb 2002 13:50:48 +0100
  • Message-id: <20020203125048.GF31139@xxxxxxxxxxxxx>
* 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@xxxxxxxx

< Previous Next >
References