2016-05-28 11 views
0

Ich habe insgesamt 6 IP-Adressen und von den 6 nur 2 IP-Adressen sind gültig. Ich schrieb ein Shell-Skript, um mit sshpass jede IP zu testen.sshpass Exit in Automatisierung

Das Problem ist, wenn Skript erreicht IP, die es Logs im System (Cisco-Switch) arbeitet und bleibt dort und nicht mit der Schleife, um die verbleibenden IPs zu testen. Wenn ich auf dem System "exit" tippe, fährt es mit der Schleife fort.

Nach einer erfolgreichen Anmeldung, wie Skript automatisch aus dem geloggten System herauskommen und mit dem Testen der verbleibenden IP weitermachen?

/usr/bin/sshpass -p $ admin ssh -oStrictHostKeyChecking = no -oCheckHostIP = no -t $ ADMINLOGIN @ $ IP Ausgang

kann ich den Exit-Status verwenden, um herauszufinden, welche IP gearbeitet und die auf hat nicht funktioniert.

Antwort

1

Testen Sie zuerst, wenn IP lebt, und dann 'ssh' darauf, könnte Ihnen helfen.Ich weiß nicht, ob Sie eine Schleife verwenden oder nicht, aber Schleife kann eine gute Wahl sein.Sollte aussehen: für f in ip-1 ip-2 ip-3 ip-4 ip-5 ip-6; mache ping -c 1 -w 3 $ f; wenn [$? -eq 0]; dann echo OK; ssh_pass $ f Ihr_Befehl; sonst Echo "IP ist NOK"; fi; done Sie können dann auch 'exit' Befehl hinzufügen, je nachdem, was Sie testen: 'exit 0', wenn es OK ist, nachdem Sie 'ssh' Befehl, 'exit 1' wenn NOK.