繁体   English   中英

Netmiko session 时间 Python

[英]Netmiko session time Python

有没有办法使用 Netmiko 登录到 Cisco 设备并保持登录状态? 我有一个 Python 脚本,它应该每 5 秒连接一次 Cisco 设备,但最好登录一次并保持登录状态,然后通过脚本发送命令从 Cisco 设备中提取数据。

先感谢您

你知道keepalive参数吗? 您还应该注意设备中的超时并允许噪声容限。

对于遇到这个问题的每个人来说,问题是在 python 脚本完成后,即使您没有为 Netmiko 设置断开命令,它也会自动断开与 Cisco 设备的连接。

因此,解决此问题的方法是始终保持联系:

在创建循环之前连接到每个网络设备:

asafw1 = {
    "host": "10.0.1.1",
    "device_type": "cisco_ios",
    "username": "user",
    "password": "password",
}
asafw2 = {
    "host": "10.2.1.1",
    "device_type": "cisco_ios",
    "username": "user",
    "password": "password",
}

conn1 = ConnectHandler(**asafw1)
conn2 = ConnectHandler(**asafw2)

然后定义 function 并将 conn 参数传递给 function:

def update_user_info_function(conn):

### Connection to ASA via Netmiko module and Connection Handler function ###
asa_output = conn.send_command("show version")
print(asa_output)

现在你调用你的 function 并使用上面配置的 conn1 和 conn2 作为 arguments:

while True:
    update_user_info_function(conn1)
    update_user_info_function(conn2)
    ### Wait 1 seconds before you go through the loop again ###
    time.sleep(1)

因此,您的网络脚本将始终运行,并且您将始终连接到您的设备。 如果您有一个半径服务器,这将非常有用,并且您的所有设备都指向该服务器,这样您将只连接一次到您的设备,保持连接并从该设备中提取数据。 因此,您不会每次都连接到该设备来提取数据,这意味着您不会过多地使用 CPU,并且您不会在 radius 服务器上生成很多行日志。

这个解决方案对我们很有帮助,因为我们正在尝试从 Cisco 设备获取 VPN 数据并将该数据发送到 mysql。 使用它,我们可以每秒从 Cisco 设备中提取数据,并将该数据发送到 mysql 并将其存储在 web 视图中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM