Linux 15.036 Themen, 107.107 Beiträge

Bash-Skript-Probleme

LenzX / 7 Antworten / Baumansicht Nickles

Folgendes kleine Script habe ich geschrieben:
---
#!/bin/bash
rm /home/ip.txt
touch /home/ip.txt
MYIP=`/sbin/ifconfig ppp0 | grep P-z-P | cut -d: -f2 | cut -d" " -f1`
echo "$MYIP" >> /home/ip.txt
#
#
exit 0
----
Wenn ich dieses Script nun laufen lasse (über /etc/ppp/ip-up.local), hat die Variable MYIP nie einen Inhalt und die IP lautet damit "" (also 0 Zeichen). Per Cron ausgeführt kommt es leider aufs Selbe hinaus. Manuell (in der Shell) hingegen funktioniert es tadellos.
Und...
----
/sbin/ifconfig ppp0 | grep P-z-P | cut -d: -f2 | cut -d" " -f1 >> /home/ip.txt
----
... funktioniert in der Shell wunderbar. Auch als Script (manuell ausgeführt) funzt es. Aber automatisch wieder nicht... *heul*
Selbst wenn ich diese Zeile einfach in die Crontab schreibe, führt er es zwar aus, aber schreibt ebenfalls wieder 0 Zeichen in die Datei.

Ich verstehe die Welt leider nicht mehr! :( Wäre genial, wenn mir jemand weiterhelfen könnte...
Gruss
Lenz

bei Antwort benachrichtigen
Klaus_T LenzX „Bash-Skript-Probleme“
Optionen

Schreibe mal nach dem #!/bin/sh rein:

PATH=/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/bin:

Ich vermute, die PATH-Angabe wird unter ip-up oder ip-up.local nicht vollstaendig sein, genauso wie in der Crontab.

Klaus

bei Antwort benachrichtigen
LenzX Klaus_T „Schreibe mal nach dem !/bin/sh rein: PATH...“
Optionen

Danke für den Tipp. Ich habe die Zeile eingefügt, aber das hat leider auch nichts verändert... :(
Gibt es noch andere Möglichkeiten?

bei Antwort benachrichtigen
Klaus_T LenzX „Danke für den Tipp. Ich habe die Zeile eingefügt, aber das hat leider auch...“
Optionen

Hi
>/sbin/ifconfig ppp0 | grep P-z-P | cut -d: -f2 | cut -d" " -f1

Warum eigentlich P-z-P? bei mir muss ich schreiben:

/sbin/ifconfig ppp0 | grep inet | cut -d: -f2 | cut -d" " -f1

Gebe doch mal die Ausgabe von ifconfig ppp0

Klaus

bei Antwort benachrichtigen
LenzX Klaus_T „Hi /sbin/ifconfig ppp0 grep P-z-P cut -d: -f2 cut -d -f1 Warum eigentlich P-z-P?...“
Optionen

oki...
----
ppp0 Protokoll:Punkt-zu-Punkt Verbindung
inet Adresse:x.x.x.x P-z-P:x.x.x.x Maske:255.255.255.255
UP PUNKTZUPUNKT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:35926 errors:0 dropped:0 overruns:0 frame:0
TX packets:39613 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:3
RX bytes:11699640 (11.1 Mb) TX bytes:14449041 (13.7 Mb)
---

bei Antwort benachrichtigen
Klaus_T LenzX „oki... ---- ppp0 Protokoll:Punkt-zu-Punkt Verbindung inet Adresse:x.x.x.x...“
Optionen

Welche Adresse willst du denn ueberhaupt haben?
Deine, also = inet Adresse

oder

die von der Gegenstelle = P-z-P

?
Wenn du die P-z-P haben willst, musst du das schreiben:

/sbin/ifconfig ppp0 | grep P-t-P | cut -d: -f3 | cut -d" " -f1

Also -f3

Ich wiess jetzt, wo der Fehler liegt. Deine Ausgabe ist in deutsch, wenn du das aber aus der ip-up oder crontab aufrufst, ist die Ausgabe in Englisch.
Deshalb musst du anstatt P-z-P einfach P-t-P schreiben. Versuch es mal.

Bye, Klaus

bei Antwort benachrichtigen
Klaus_T Nachtrag zu: „Welche Adresse willst du denn ueberhaupt haben? Deine, also inet Adresse oder...“
Optionen

Du solltest in deiner /etc/profile folgenden Eintrag machen:

export LC_MESSAGES=en_US

Dann passiert dir so etwas auch nicht mehr, weil du dann alle Meldungen in Englisch bekommst. Ist auch besser fuers Fehlersuchen.

Bye, Klaus

bei Antwort benachrichtigen
LenzX Klaus_T „Du solltest in deiner /etc/profile folgenden Eintrag machen: export LC_MESSAGES...“
Optionen

ja, super! Vielen, vielen Dank! Daran lag's! Da soll erst mal jemand drauf kommen...
Ich wollte aber natürlich meine IP-Adresse und nicht die P-z-P bzw. P-t-P. War ein Fehler von mir... sorry. Habs nun so geändert:
----
/sbin/ifconfig ppp0 | grep addr | cut -d: -f2 | cut -d" " -f1
----
... und nun funzt es wunderbar!
Vielen, vielen Dank noch mal!

bei Antwort benachrichtigen