簡體   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