gpt4 book ai didi

python - 如何遍历交换机的所有端口并使用 python 和 ssh 一个一个地禁用它们?

转载 作者:太空宇宙 更新时间:2023-11-04 01:57:07 25 4
gpt4 key购买 nike

我想知道如何逐个遍历 SAN 交换机的 48 个端口并启用或禁用它们?对于一些背景信息,我编写了 python 脚本来自动测试网络设备。我使用一个名为 paramiko 的库,它使用 SSH 连接到这些设备。

这是我编写的一个简单函数,用户在其中输入他们想要禁用的端口

def disablePort(ssh):
user_input = input("Enter the port number you want to disable\n")

channel = ssh.invoke_shell()

ssh.exec_command("portdisable " + user_input)

channel.close()

print("Port " + user_input + " " + "disabled\n")

print("Waiting 10 seconds as instructed by the test case\n")

time.sleep(10)

现在,我在这个交换机上有 48 个端口,我想将它们一一禁用。我觉得一个天真的解决方案是创建一个列表,其中所有端口名称都被硬编码并遍历每个端口并将其提供给 ssh.exec_command() 方法,但是是否有更优雅/实用的解决方案?我怎样才能做到这一点?感谢您的帮助!

最佳答案

您应该能够先连接到 Paramiko,然后运行类似(针对思科)的程序

show interfaces status

并从 paramiko 读取标准输出以获取所有接口(interface)。然后您可以使用它进行迭代,第一列是名称。

一旦你有了一个端口列表,你就可以一个一个地遍历它们并以相同的方式禁用它们。例如

for port in myListOfPorts:
ssh.exec_command(f"portdisable {port}")

不过,您应该查看 Netmiko,它是用于网络设备的 paramiko 端口。 https://github.com/ktbyers/netmiko

最后,可能只有一条命令可以拆除所有接口(interface),而不是一次拆除一个。

关于python - 如何遍历交换机的所有端口并使用 python 和 ssh 一个一个地禁用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56565049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com