python paramiko 網絡系統運維

概述

背景:網絡系統運維與建設:工作中發現客戶使用python腳本批量操作網絡設備導出多臺網絡設備的配置定期執行相關的巡檢工作

修改配置

# -*- coding:utf8 -*-
"""
# editor: hjjdreamer
# create-time: 2024/3/3-23:31
# Python-Script: 38_module_paramiko_1.py
# describe:
paramiko    模塊用于網絡系統管理運維的模塊可用于修改網絡設備的配置
背景:網絡系統運維與建設:工作中發現客戶使用python腳本批量修改多臺網絡設備的配置https://zhuanlan.zhihu.com/p/370526806
https://zhuanlan.zhihu.com/p/486260131
"""
import paramiko
import time
import getpass# 通過input() 獲取用戶名并賦值給username
username = input("Username:")
# 通過getpass模塊中getpass() 獲取輸入的密碼字符串并賦值給password
password = getpass.getpass(prompt="Password:", stream=None)# 循環遍歷連續的ip地址
for i in range(1, 5):ip = "192.168.139." + str(i)# 此時 ip_list.txt 需要與 腳本 在相同的文件夾中# f = open('ip_list.txt')# for line in f.readlines():#     ip = line.strip()# 通過paramiko模塊中SSHClient()函數賦值給ssh_client, 使用戶通過ssh_client的相關函數傳入必要的信息ssh_client = paramiko.SSHClient()# 設置ssh_client自動使用主機密碼策略ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 設置ssh_client的登錄密碼等信息ssh_client.connect(hostname=ip, username=username, password=password, look_for_keys=False)# 將ssh_client的命令行shell賦值給command,使客戶通過command.send()函數向設備輸入命令command = ssh_client.invoke_shell()# 交換機命令調度command.send("system-view" + "\n")  # 切換系統模式# 關閉消息通知(防止log信息刷屏)# command.send('undo info-center enable\n')command.send("aaa" + "\n")# 修改密碼command.send("local-user admin password cipher Jan16@123" + "\n")# 返回用戶視圖保存并退出command.send("return" + "\n")command.send("save" + "\n")command.send("Y" + "\n")command.send("\n")# 暫停2秒time.sleep(2)# 將執行過程賦值給output,通過print output回顯內容output = command.recv(65535).decode()print(output)# 保存結果到python腳本同目錄下的result文件夾中f1 = open(f"./result/{ip}_dis_int_bri.txt", "w")f1.write(output)f1.close()# 關閉文件# f.close()ssh_client.close()

獲取配置

# -*- coding:utf8 -*-
"""
# editor: hjjdreamer
# create-time: 2024/3/4-0:29
# Python-Script: 38_module_paramiko_2.py
# describe:
paramiko    模塊用于網絡系統管理運維的模塊執行計劃任務
背景:網絡系統運維與建設:工作中發現客戶使用python腳本批量導出多臺網絡設備的配置定期執行相關的巡檢工作
https://zhuanlan.zhihu.com/p/370526806
https://zhuanlan.zhihu.com/p/486260131
"""
import paramiko
import time
import getpass
from datetime import datetimeusername = "admin"
password = "ABC123"for i in range(1, 5):ip = "192.168.139." + str(i)# 通過paramiko模塊中SSHClient()函數賦值給ssh_client, 使用戶通過ssh_client的相關函數傳入必要的信息ssh_client = paramiko.SSHClient()# 設置ssh_client自動使用主機密碼策略ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 設置ssh_client的登錄密碼等信息ssh_client.connect(hostname=ip, username=username, password=password, look_for_keys=False)# 將ssh_client的命令行shell賦值給command,使客戶通過command.send()函數向設備輸入命令command = ssh_client.invoke_shell()# 提示ssh登錄成功print(f'ssh {ip} successful')# 關閉分屏功能command.send('screen-length 0 temporary\n')# 獲取交換機的運行配置信息output = (command.send('display current-configuration\n'))# 暫停2stime.sleep(2)# 讀取當前時間now = datetime.now()# 打開備份文件進行文件備份backup = open('/root/backup' + str(now.year) + "-" + str(now.month) + "-" + str(now.day) + "-" + ip + ".txt", "a+")# 提示正在備份print(f"backuping + {ip}")# 回顯信息賦值給recvrecv = command.recv(65535).decode()# 寫入備份文件backup.write(recv)# 關閉打開的備份文件backup.close()# 斷開鏈接ssh_client.close()

相關鏈接

https://zhuanlan.zhihu.com/p/370526806
https://zhuanlan.zhihu.com/p/486260131

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/717882.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/717882.shtml
英文地址,請注明出處:http://en.pswp.cn/news/717882.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java項目推薦|幾個B站上的從零搭建項目

分享幾個B站上搜集到的技術比較全,講解也詳細的Java后端開發項目 目錄 谷粒商城 2020-03-31 iHRM 人力資源管理系統 2021-04-16 瑞吉外賣 2022-04-12 學成在線 2023-01-13 尚上優選 2023-06-06 黑馬頭條 2023-06-13 蒼穹外賣 2023-07-05 谷粒商城 2020-03-3…

命名實體識別NER

一、什么是命名實體識別: 命名實體:通常我們將人名、地名、機構名等專有名詞統稱命名實體,如:周杰倫,黑山縣,孔子學院,24方鋼直機 顧名思議,命名實體識別(簡稱NER&#x…

【常用的 Git 命令及簡要示例說明】

常用的 Git 命令及簡要示例說明,以供參考: 初始化一個新的代碼倉庫: git init克隆一個遠程倉庫到本地: git clone https://github.com/user/repo.git添加當前所有變更到暫存區: git add .提交暫存區的變更到本地倉庫&a…

STM32FreeRTOS任務通知(STM32cube高效開發)

文章目錄 一、任務通知(一)任務通知概述1、任務通知可模擬隊列和信號量2、任務通知優勢和局限性 (二) 任務通知函數1、xTaskNotify()發送通知值不返回先前通知值的函數2、xTaskNotifyFromISR()發送通知函數ISR版本3、x…

Java面試題總結200道(二)

26、簡述Spring中Bean的生命周期? 在原生的java環境中,一個新的對象的產生是我們用new()的方式產生出來的。在Spring的IOC容器中,將這一部分的工作幫我們完成了(Bean對象的管理)。既然是對象,就存在生命周期,也就是作用…

LeetCode 刷題 [C++] 第73題.矩陣置零

題目描述 給定一個 m x n 的矩陣,如果一個元素為 0 ,則將其所在行和列的所有元素都設為 0 。請使用 原地 算法。 題目分析 題目中要求使用原地算法:即直接在輸入矩陣上進行修改。因此如果在輸入矩陣上把行/列的值修改成0后,在…

【Linux】基本指令(下)

🦄個人主頁:修修修也 🎏所屬專欄:Linux ??操作環境:Xshell (操作系統:CentOS 7.9 64位) 日志 日志的概念: 網絡設備、系統及服務程序等,在運作時都會產生一個叫log的事件記錄;每一行日志都記載著日期、時間、使用者及動作等相關…

計算機視覺(Computer Vision)和機器視覺(Machine Vision)

舉例說明計算機視覺(CV)技術的優勢和挑戰 計算機視覺(CV)技術是一種使用計算機科學和機器學習方法來解釋、分析和理解圖像和視頻的技術。它的優勢和挑戰如下: 優勢: 高效性:CV技術可以快速處…

課時53:數組實踐_基礎操作_數組基礎

1.1.2 數組定義 學習目標 這一節,我們從 基礎知識、簡單實踐、小結 三個方面來學習。 基礎知識 數組創建 在Shell中,用括號來表示數組,數組元素用“空格”符號分割開。定義數組的語法格式:array_name(value1 ... valuen) 注意…

MSCKF4講:后端理論推導(下)

MSCKF4講:后端理論推導(下) 文章目錄 MSCKF4講:后端理論推導(下)6 可觀測性分析與約束6.1 為什么要做能觀性分析6.2 關于零空間解釋6.3 可觀測性分析6.4 可觀測性約束① 狀態轉移矩陣Φ② 對觀測矩陣H--觀測…

【洛谷 P8682】[藍橋杯 2019 省 B] 等差數列 題解(數學+排序+輾轉相除法)

[藍橋杯 2019 省 B] 等差數列 題目描述 數學老師給小明出了一道等差數列求和的題目。但是粗心的小明忘記了一部分的數列,只記得其中 N N N 個整數。 現在給出這 N N N 個整數,小明想知道包含這 N N N 個整數的最短的等差數列有幾項? 輸…

deep learning with pytorch(一)

1.create a basic nerual network model with pytorch 數據集 Iris UCI Machine Learning Repository fully connected 目標:創建從輸入層的代碼開始,向前移動到隱藏層,最后到輸出層 # %% import torch import torch.nn as nn import torch.nn.funct…

【大數據】詳細講解

大數據 0. 前言1. 大數據的5V特征2. 大數據技術3. 大數據分析4. 大數據應用5. 失效風險與挑戰 0. 前言 大數據是一個涉及非常龐大和復雜數據集的領域,這些數據集因其規模和復雜性而難以使用傳統數據處理軟件進行有效處理。在講解大數據之前,我們首先需要…

LeetCode26 刪除有序數組中的重復項

題目 給你一個 非嚴格遞增排列 的數組 nums ,請你原地刪除重復出現的元素, 使每個元素 只出現一次 ,返回刪除后數組的新長度。 元素的 相對順序 應該保持 一致 然后返回 nums 中唯一元素的個數。 示例 示例 1:輸入:num…

30天JS挑戰(第十四天)------數據的復制

第十四天挑戰(數據的復制) 地址:https://javascript30.com/ 所有內容均上傳至gitee,答案不唯一,僅代表本人思路 中文詳解:https://github.com/soyaine/JavaScript30 該詳解是Soyaine及其團隊整理編撰的,是對源代碼…

后端開發技術面試指南

工作10多年,每年都會幫組里面試一些新同學校招社招的都有,下面我就從一個面試官的視角來給大家拆解一下如何淡然應對后端開發技術面試。 1.一面多為電話面試 (1)問七問八 ①簡歷要注重內容,形式上不丑沒有錯別字即可。之前收到過一個工作5…

經典語義分割(一)利用pytorch復現全卷積神經網絡FCN

經典語義分割(一)利用pytorch復現全卷積神經網絡FCN 這里選擇B站up主[霹靂吧啦Wz]根據pytorch官方torchvision模塊中實現的FCN源碼。 Github連接:FCN源碼 1 FCN模型搭建 1.1 FCN網絡圖 pytorch官方實現的FCN網絡圖,如下所示。 1.2 backbone FCN原…

為raspberrypi編譯bpftrace調試工具

基于eBPF的嵌入式應用調試 筆者之前寫過幾篇有關于使用eBPF調試Linux內核和應用的博客,其中提到,在嵌入式設備上使用BCC或bpftrace是不可行的;主要原因在于嵌入式設備的資源有限,而這兩個調試工具依賴python/clang/llvm等庫&…

Scratch 第十六課-彈珠臺游戲

第十六課-彈珠臺游戲 大家好,今天我們一起做一款彈珠臺scratch游戲,我們也可以叫它彈球游戲!這款游戲在剛出來的時候非常火爆。小朋友們要認真學習下! 這節課的學習目標 物體碰撞如何處理轉向問題。復習鍵盤對角色的控制方式。…

STL-內存的配置與釋放

STL-內存的配置與釋放 STL有兩級空間配置器,默認是使用第二級。第二級空間配置器會在某些情況下去調用第一級空間配置器。空間配置器都是在allocate函數內分配內存,在deallocate函數內釋放內存。 第一級空間配置器 第一級配置器只是對malloc函數和fre…