Sep 13, 2025 - 11:31 PMDeutsch | English
Hello unlogged user [ Register | Log in ]

Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Author Message
brot
15 Post subject: automatisches auslesen von switchdaten  PostPosted: Jun 19, 2009 - 08:37 AM



Joined: Jan 10, 2006
Posts: 183

guten morgen zusammen,
ich sitz hier grade auf der arbeit und bin dabei, mir ein kleines script zu basteln, dass sich mit einem switch verbindet, einen befehl absetzt und die verbindung wieder trennt, der einfachheit halber Winken
bei meinen ersten versuchen bin ich auf das programm expect gestoßen, funktioniert auch wunderbar, momentan sieht men script in etwa so aus:

Code:

#!/usr/local/bin/expect
spawn telnet [lindex $argv 0]

expect  "Username: "
send "[benutzername]\r"
expect "Password: "
send "[passwort]\r"

send [lindex $argv 1]
send "\n bla \n exit\n"

interact


der erste parameter ist die ip, der zweite der befehl. das "bla" am ende ist nur dafür da, einen fehler auszugeben wenn die seite zu lang wird und ich hätte enter drücken müssen, wodurch das "exit" nicht funktioniert hätte Auf den Arm nehmen

jetzt würde ich meinen script gern so erweitern, dass ich anstatt der ip den namen des switches mitgebe. dazu habe ich eine einfache textdatei (mehr oder weniger nen auszug aus der datenbank) mit zuordnung name, ip und beschreibung.
die ip bekomme ich mit dem befehl

/usr/bin/grep -i [lindex $argv 0] /pfad-zur-datei.txt | cut -d ' ' -f2

raus. nur bekomm ich es nicht auf die reihe, diesen befehl in meinen script zu integrieren, zumindest nicht wenn ganz oben
#!/usr/local/bin/expect
steht. änder ich es auf #!/bin/sh, funktioniert der befehl, das expect aber nicht mehr.
irgendwelche ideen?


Last edited by brot on Jun 22, 2009 - 09:06 AM; edited 1 time in total
 
 View user's profile Send private message Visit poster's website  
Reply with quote Back to top
Kano
Post subject: automatisches auslesen von switchdaten  PostPosted: Jun 19, 2009 - 09:11 AM



Joined: Dec 17, 2003
Posts: 16809

Du denkst viel zu kompliziert. Du schreibst das in /etc/hosts und dann geht eh schon das was du willst.
 
 View user's profile Send private message  
Reply with quote Back to top
brot
Post subject: automatisches auslesen von switchdaten  PostPosted: Jun 19, 2009 - 10:22 AM



Joined: Jan 10, 2006
Posts: 183

Hi Kano,
das wäre viel zu einfach Auf den Arm nehmen
ich bin ganz normaler user auf der kiste und habe keine schreiberechtigung auf /etc/hosts. davon ab wird wird die o.g. datei automatisch generiert (ist recht dynamisch Winken) und beinhaltet ein paar tausend komponenten.
 
 View user's profile Send private message Visit poster's website  
Reply with quote Back to top
Kano
Post subject: automatisches auslesen von switchdaten  PostPosted: Jun 19, 2009 - 10:58 AM



Joined: Dec 17, 2003
Posts: 16809

Naja ist trivial

#!/bin/sh
...
expect - <<EOT
...
EOT
 
 View user's profile Send private message  
Reply with quote Back to top
brot
Post subject: automatisches auslesen von switchdaten  PostPosted: Jun 22, 2009 - 09:05 AM



Joined: Jan 10, 2006
Posts: 183

Moin,
ich melde mich noch mal kurz, das script läuft mittlerweile so, wie ich es will Winken
hier mal mein code, falls es jemanden interessieren sollte/könnte:

Code:
#!/bin/bash


ip=`grep -i $1 [pfad-zur-datei] | head -n 1 | tr -s " " " " | cut -d" " -f2`


expect - <<EOT

spawn telnet $ip
expect "Username: "
send "[benutzername]\n"
expect "Password:"
send "[passwort]\r"
expect "#"
send "$2 \n"
send "\n exit\n"

expect eof


was das "expect - << EOT" und das "expect eof" allerdings macht, hab ich kein schimmer, wär klasse wenn ihr noch ne kurze erklärung hättet, google ist nicht wirklich ergiebig
 
 View user's profile Send private message Visit poster's website  
Reply with quote Back to top
Kano
Post subject: automatisches auslesen von switchdaten  PostPosted: Jun 22, 2009 - 12:02 PM



Joined: Dec 17, 2003
Posts: 16809

Du hast das EOT nicht drin. Das ist ein Marker, kann auch ein anderes Wort sein z.b.

cat > filename <<EndeDesTextes
...
EndeDesTextes

Das würde eine Textdatei schreiben, wo alles bis zum Marker drinsteht, wobei variablen ausgewertet werden. Hab man z. B. patches und will NICHT, dass man alle stellen mit $ mit \ Escapen muss nimmt man:

patch -p1 << 'Marker'
...
Marker

Das geht praktisch mit jedem Befehl, hoffe es wird nun klar. Die gross/kleinschreibung MUSS identisch sein vom Marker.
 
 View user's profile Send private message  
Reply with quote Back to top
brot
Post subject:   PostPosted: Jun 22, 2009 - 12:54 PM



Joined: Jan 10, 2006
Posts: 183

danke.
ganz klar ist es mir noch nicht, aber ein guter anhaltspunkt um onkel google zu befragen Winken
 
 View user's profile Send private message Visit poster's website  
Reply with quote Back to top
Kano
Post subject:   PostPosted: Jun 22, 2009 - 01:49 PM



Joined: Dec 17, 2003
Posts: 16809

Dein Beispiel ist falsch, nur weil dein expect am Ende aufhört und du danach keine weiteren Befehle hast kommt keine Fehlermeldung, korrekt ist es noch lange nicht.
 
 View user's profile Send private message  
Reply with quote Back to top
Display posts from previous:     
Jump to:  
All times are GMT + 1 Hour
Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Powered by PNphpBB2 © 2003-2007 The PNphpBB Group
Credits
 
Deutsch | English
Logos and trademarks are the property of their respective owners, comments are property of their posters, the rest is © 2004 - 2006 by Jörg Schirottke (Kano).
Consult Impressum and Legal Terms for details. Kanotix is Free Software released under the GNU/GPL license.
This CMS is powered by PostNuke, all themes used at this site are released under the GNU/GPL license. designed and hosted by w3you. Our web server is running on Kanotix64-2006.