J'essaye d'écrire un script où j'ai besoin de ssh serveur de saut multiple pour accéder à un routeur.Manipulation du délai d'attente telnet/connexion refusée dans le routeur python pexpect
par exemple LocalMachine ---- --- ssh server1 --- --- ssh server2 --- telnet/ssh --- routeur
Je ne sais pas quelle est la meilleure façon de le faire, j'ai essayé l'atteindre grâce à pexpect. Mon exigence est quand je telnet du serveur server2 au routeur et il timeout/connexion refusée je veux essayer ssh des suggestions s'il vous plaît?
import time, pexpect
child = pexpect.spawn('ssh [email protected]') ##########ssh to 1st Jump server
child.expect('password: ')
child.sendline('abc')
child.expect('$')
child.sendline('ssh [email protected]') ##########ssh to 2nd Jump server
print child.before
child.expect('password:')
child.sendline('xyz')
child.expect('$')
print child.before
host=raw_input("Enter Router name: ")
try:
print "Trying Telnet ", host
child.sendline(' telnet ' + host) ### router telnet at this point i want if telnet is timeout/connection refused try ssh
print child.before
except pexpect.TIMEOUT:
print child.before
else:
child.expect(':')
child.sendline("User")
child.expect(":")
child.sendline('passwprd')
child.expect('#')
child.sendline("\n")
child.expect("#")
finally:
print "Trying SSH ", host
child.sendline(' ssh -l User ' + host)
print child.before
child.expect(":")
child.sendline('password')
child.expect('#')
child.sendline("\n")
print child.before
child.interact()
essayé d'utiliser ci-dessous, mais la valeur si i est toujours « $ » ..Qu'est est l'erreur? I = child.expect (["Nom d'utilisateur:", "$", "Etes-vous sûr de vouloir continuer à vous connecter (oui/non)?", "Mot de passe:", ">"]) –