Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : wo zum Teufel is der Fehler ( shellscript )



malcadon
04-03-2002, 18:34
Hiya also ich habe hier folgendes:

======================================

#!/bin/bash

while [ -t ] ; do
echo -n "$(date) : " >> /var/log/my-ip.log
(sleep 1 ; echo "user ftp" ; \
sleep 1 ; echo "pass mmm@gmx.de" ; \
sleep 1 ; echo "quit" ) | \
telnet ftp.gwdg.de 21 | \
grep "Hello User at" >> /var/log/my-ip.log
sleep 3600
done

======================================

Das ganze speicher ich schön brav unter ip.sh ab und wenn ich es im Konqueror starte schreibt er mir auch die log. datei.
Nur leider den falschen inhalt... er schreibt mir nicht die Zeile "hello User at..." rein...sondern nur 4 mal das aktuelle datum mehr nicht.

gebe ich aber in der konsole sauber erst
telnet ftp.gwdg.de 21 ein
dann user ftp
dann pass blablabla
schreibt er mir schön die willkommennachricht auf den screen.

Wie bekomme ich den inhalt nun in die logdatei??? zumindest die Zeile "hello user"

Irgendwo ist ein Fehler...

Das zweite ist wenn ich in einer shell versuche die datei zu starten kennt er den befehl nicht wenn ich eintippe ip.sh wiso das die datei ist doch da und bereit zum ausführen oder?

Thx und Gruß Malcadon

rup
04-03-2002, 19:51
grep "Hello User at" >> /var/log/my-ip.log FALSCH

echo "Hello User at" >> /var/log/my-ip.log RICHTIG

micha
04-03-2002, 20:02
Hi,

versuchs mal damit:



#!/bin/bash

LOG=/var/log/my-ip.log

echo -n "`date` : " >> $LOG
(
sleep 1 ; echo "user ftp"
sleep 1 ; echo "pass mmm@gmx.de"
sleep 1 ; echo "quit"
) | telnet ftp.gwdg.de 21 2>/dev/null | grep "Hello User at" >> $LOG


Gruß micha

micha
04-03-2002, 20:10
Original geschrieben von malcadon

Das zweite ist wenn ich in einer shell versuche die datei zu starten kennt er den befehl nicht wenn ich eintippe ip.sh wiso das die datei ist doch da und bereit zum ausführen oder?


Der Pfad zu dem Script muss in der $PATH stehen, ansonsten musst Du der Shell mit vorangestelltem ./ klarmachen, dass sie im aktuellen Verzeichnis nach dem Script suchen soll.

Gruß micha

mightymike99
04-03-2002, 20:30
...und vielleicht noch einen chmod u+x Datei vor dem ausführen falls noch nicht geschehen.

malcadon
04-03-2002, 21:59
Hmm was hat es denn mit dieser §path datei auf sich?

Wo finde ich sie und was ändere ich?

Thx!

micha
04-03-2002, 22:21
Die $PATH ist kein Paragraph sondern eine Variable $ und anzeigen lassen kannst Du sie Dir mit echo:



micha:~ > echo $PATH
/home/micha/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/lib/java/bin:/usr/games/bin:/usr/games:/opt/gnome/bin:/opt/kde2/bin:/opt/kde/bin:.:/opt/gnome/bin
micha:~ >


In den ganzen Pfaden, die dann aufgelistet werden, wird nach einem Programm gesucht. Willst Du einen Pfad hinzufügen, geht das mit dem Befehl export:

export PATH=$PATH:/ein/neuer/Pfad/

allerdings hält das nur, bis Du Dich aus der Shell ausloggst. Soll der Pfad in jeder Shell vorhanden sein, musst Du den gleichen Befehl in die ~/bash_profile eintragen.

Gruß micha

malcadon
05-03-2002, 13:09
Hiya also Danke für deine Lösung Micha, dein weg funktz schonmal, jetzt muss ich mich nur noch mit der $path auseinandersetzten