Multi - Comand - SSH - Telnet .Py
Multi - Comand - SSH - Telnet .Py
tn = telnetlib.Telnet(HOST)
tn.read_until(b"Username: ")
tn.write(user.encode('ascii') + b"\n")
if password:
tn.read_until(b"Password: ")
tn.write(password.encode('ascii') + b"\n")
with open(str(tipo)+".txt") as file:
alldata = file.read().splitlines()
for comando in alldata:
print (comando)
#
#tn.write(b"terminal length 0\n")
tn.write(bytes(comando + "\n", 'utf-8'))
tn.write(b"exit\n")
#
output = tn.read_all().decode('ascii')
print (output)
t = datetime.datetime.now()
def ssh(HOST,user,password,tipo):
try:
remote_conn_pre=paramiko.SSHClient()
remote_conn_pre.set_missing_host_key_policy(paramiko.AutoAddPolicy())
remote_conn_pre.connect(HOST, port=22,
username=user,password=password,look_for_keys=False, allow_agent=False)
remote_conn = remote_conn_pre.invoke_shell()
t = datetime.datetime.now()
except:
print ("error en " + HOST)
else:
with open (timestamp + " respaldo " + HOST + ".txt", 'w') as saveoutput:
output = remote_conn.recv(65535)
print (output.decode('ascii'))
saveoutput.write (output.decode('ascii'))
time.sleep(5)
print (output.decode('ascii'))
saveoutput.write (output.decode('ascii'))
saveoutput.close
def RemoteConection(linea):
print(linea)
HOST,user,password,conexion,tipo = linea.split("|")
if conexion == "t":
Telnet(HOST,user,password,tipo)
else:
ssh(HOST,user,password,tipo)
with open("direcciones.txt") as file:
conndata = file.read().splitlines()
"""
for linea in conndata:
RemoteConection(linea)
"""
pool = ThreadPool(len(conndata))
pool.map(RemoteConection,conndata)
pool.close()
pool.join()