【发布时间】:2022-07-29 15:56:47
【问题描述】:
我正在尝试加快与几个网络设备的 Paramiko SSH 连接。我想为此目的使用 asyncio,但我不确定我的实现是否正确,因为我没有看到执行时间有任何好处,如果我们不使用它,脚本每次执行大约 6 秒。这个想法是,让第二台主机启动其 SSH 连接,而无需等待第一台主机的 SSH 连接建立。
这是我当前的代码,它可以运行但没有任何好处。如果可以,请在此处提出如何使其工作或改进的任何建议。
import paramiko
import time
import asyncio
async def sshTest(ipaddress,deviceUsername,devicePassword,sshPort): #finalDict
try:
print("Performing SSH Connection to the device")
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(ipaddress, username=deviceUsername, password=devicePassword, port=sshPort, look_for_keys=False, allow_agent=False)
print("Channel established")
except Exception as e:
print(e)
async def main():
print("Session 1 \n")
await sshTest('192.168.255.11','admin','admin','22')
print("Session 2 \n")
await sshTest('192.168.254.11','admin','admin','22')
if __name__ == "__main__":
start = time.time()
asyncio.run(main())
end = time.time()
print("The time of execution of above program is :", end-start)
【问题讨论】:
-
仅添加
async关键字不会使函数异步,请查看 AsyncSSH
标签: ssh python-asyncio paramiko