Hallo zusammen,
als aller erstes muss ich mal ein dickes Lob an euch alle hier im Forum und allen die am Wiki arbeiten aussprechen. Ich habe vor ein paar Jahren mit Linux im allgemeinen ganz klein angefangen. Und bei Problemen konnte ich immer auf euer bereits geschrieben Hilfen zurückgreifen.
DANKE dass ihr mir wieder viel Stunden googlen und try'n'error erspart habt. Ihr seit die Besten.
Nun habe ich aber ein Problem wo ich keine Hilfe finden konnte. Ich hoffe ihr könnt helfen.
Es geht um folgendes: Ich habe ein shell-script welches Variablen einliest und dann an ein expect-script übergibt dass mir wiederrum eine ssh-Verbindung zu einem jumphost aufbaut. Auf dem jumphost wird in ein tftp Verzeichnis gewechselt. Das klappt allers wunderbar. Nun möchte ich aber in dem Verzeichnis nach einer Datei suchen bzw prüfen ob diese vorhanden ist. Und genau hier habe ich das Problem. Mein Script sucht zwar nach dem File verarbeitet dann aber die expect-Optionen nicht.
Mein Code sieht wie folgt aus:
1 2 3 4 5 6 7 | send "cd tftp \n" expect "username@jumphost01#" send "ls -la *$file* \n" expect { "*No such file*" { send_user "\n File nicht vorhanden \n"; exit 1} "*file*" {} } |
Der Output sieht wie folgt aus:
username@jumphost01#cd tftp username@jumphost01#ls -la *testfile.log* *testfile.log*: No such file or directory username@jumphost01#
bzw so wenn er dir Datei findet:
username@jumphost01#cd tftp username@jumphost01#ls -la *testfile.log* - rwxrwxrwx 1 user usergroup 12389 JAN 22 2016 testfile.log username@jumphost01#
Wie bekomme ich mein expect script so hin dass es die vorletzte Zeile auswertet und nicht die letzte? Mir ist bekannt dass ich alles in ein log-file schreiben könnte dann zurück ins shell script und dann wieder mit einem anderen expect-script zurück auf den jumphost um von dort aus weiter zu arbeiten.
Wäre spitze wenn ihr mir helfen könnt
Grüße
euer aramis_1