python自动化管理华为交换机问题

查看 90|回复 5
作者:Tenderness6   
求自动化python大佬帮忙看下
目的:通过python自动化管理 华为交换机,超时设置了很长时间也不行
错误:每次只能执行commands里面的第一条命令,就显示SSH连接错误:SSH session not active,尝试了多种方法都不行,希望能求到一份解决办法
import paramiko
# SSH连接参数
hostname = ''
port = 22
username = ''
password = ''
# 创建SSH客户端
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
        # 连接SSH服务器
        client.connect(hostname, port, username, password)
         # 执行多条命令
        commands = [
            'display version',
            'display interfaces',
            'display arp'
        ]
        for command in commands:
            stdin, stdout, stderr = client.exec_command(command)
            # 读取命令输出
            output = stdout.read().decode('utf-8')
            print(output)
except paramiko.AuthenticationException as e:
    print(f"身份验证失败:{e}")
except paramiko.SSHException as e:
    print(f"SSH连接错误:{e}")
except paramiko.ChannelException as e:
    print(f"通道错误:{e}")
finally:
    # 关闭SSH客户端
    client.close()

华为, 大佬

灿烂的小居   


Tenderness6 发表于 2023-6-29 15:58
大佬,报了个错误
[mw_shl_code=bash,false] File "c:%users\13603\Desktop\单个交换机配置.py", line ...

stdout= chan.recv(9999)
这样看看
灿烂的小居   

[Python] 纯文本查看 复制代码import paramiko
import time
# SSH连接参数
hostname = ''
port = 22
username = ''
password = ''
# 创建SSH客户端
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
        # 连接SSH服务器
        client.connect(hostname, port, username, password)
        chan = client.invoke_shell()
        resp = chan.recv(9999)
         # 执行多条命令
        commands = [
            'display version',
            'display interfaces',
            'display arp'
        ]
        for command in commands:
            chan.send(command)
            time.sleep(3)
            stdin, stdout, stderr = chan.recv(9999)
            # 读取命令输出
            output = stdout.read().decode('utf-8')
            
            print(output)
except paramiko.AuthenticationException as e:
    print(f"身份验证失败:{e}")
except paramiko.SSHException as e:
    print(f"SSH连接错误:{e}")
except paramiko.ChannelException as e:
    print(f"通道错误:{e}")
finally:
    # 关闭SSH客户端
    client.close()
试一试
Tenderness6
OP
  

求助,求助
Tenderness6
OP
  


灿烂的小居 发表于 2023-6-29 15:26
[Python] 纯文本查看 复制代码import paramiko
import time
[/quote]
大佬,报了个错误
[mw_shl_code=bash,false] File "c:\Users\13603\Desktop\单个交换机配置.py", line 31, in
    stdin, stdout, stderr = chan.recv(9999)
ValueError: too many values to unpack (expected 3)
Tenderness6
OP
  


Tenderness6 发表于 2023-6-29 15:58
大佬,报了个错误
[mw_shl_code=bash,false] File "c:%users\13603\Desktop\单个交换机配置.py", line ...

我换了个全新的代码,感谢
您需要登录后才可以回帖 登录 | 立即注册

返回顶部