如何使用paramiko向交换机发送多条命令并接收很长的output?
1.需要使用paramiko模块向交换机发送两条命令。第一条'screen-length disable'用于取消单屏回显,第二条'display cur'用于输出配置文件内容。现有如下两个问题:
①paramiko的一个channel只能接收一条命令,之后channel就会关闭。这两条命令需要在一个连接下发送。
②第二条命令的回显很长(大概5000行),使用readlines()方法时就会卡顿,无输出也没有异常。
我的代码如下:
1 import paramiko
1 import datetime
2
3 time1 = datetime.datetime.now()
4 time2 = time1.strftime("%Y-%m-%d")
5
6 def ssh2(ip, username, passwd, cmd):
7 try:
8 ssh = paramiko.SSHClient()
9 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
10 ssh.connect(ip, 22, username, passwd, timeout=10)
11 for m in cmd:
12 stdin, stdout, stderr = ssh.exec_command(m)
13 out = stdout.readlines()
14 for o in out:
15 print(o)
16 print('%s\tOK\n'%(ip))
17 ssh.close()
18 except Exception as e:
19 print('%s\tError\n'%(ip))
20 print(e)
21
22
23
24 if __name__ == '__main__':
25 ssh2('10.74.49.61', 'g-netops@system', '1qaz2wsxQWER', ['screen-length disable', 'dis cur'])
~
输出如下:
求解决,多谢各位!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论