Linux 15.004 Themen, 106.699 Beiträge

Bash-Skript-Probleme

LenzX / 7 Antworten / Flachansicht 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 „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