⑴ python 怎麼登錄交換機
用telnet的方式登陸應該可以吧?
⑵ python可以批量修改交換機配置嗎
用python寫的,主要是telnetlib庫的應用,華為交換機批量修改埠配置,把已經UP的埠做一個port sec的mac sticky綁定,DOWN的埠,就clear配置信息。
⑶ 怎樣根據交換機埠號進行排序,用python的話
importre
file=open(r'D:66.txt','r')
file=[l.split()forlinfile.read().split(' ')]
files=[[row[i]foriinrange(0,6)if(i!=1)and(i!=2)and(i!=3)and(i!=5)and(i!=6)]forrowinfile]
defsort(files):
forkinrange(len(files)):
files[k][0],files[k][1]=files[k][1],files[k][0]
sorted(files,key=lambdax:int(re.match(r'(Eth0/0/(d+))',x).group(1)))
forkinrange(len(files)):
files[k][0],files[k][1]=files[k][1],files[k][0]
sort(files)
foriinfiles:
printi
作者:Valor
鏈接:https://www.hu.com/question/39827151/answer/83278996
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。
⑷ python paramiko通過SSH登錄交換機不執行ssh.exec_command("show run")命令
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('10.111.43.18',22,'root','12345',timeout=5)
stdin, stdout, stderr = ssh.exec_command('cd /root/epoll/')
stdin, stdout, stderr = ssh.exec_command('pwd')
上邊的代碼輸出應該是 /root/epoll/,但結果卻是 /root ,即使用root登陸的預設目錄
原因是exec_command為單個會話,執行完成之後會回到登錄時的預設目錄
修改為這樣執行結果則為預期的 /root/epoll 目錄
stdin, stdout, stderr = ssh.exec_command('cd /root/epoll/;pwd')
⑸ python新手求教,關於paramiko連接交換機輸出文件顯示問題.
看文件中的格式,有b'這種字元,說明取到的數據為位元組類型數據,需要進行解碼,才可以當成字元串寫入文件,那樣就可以像終端中的樣子了。
下面有個簡單的解碼示例:
>>>a=b'aaa '
>>>print(a)
b'aaa '
>>>a.decode()
'aaa '
>>>b=a.decode()
>>>b
'aaa '
>>>print(b)
aaa
>>>
⑹ 為什麼大學又要學資料庫又要學Python還要學交換路由,這樣真的能學到東西嗎
大學里安排課程需要考慮多個方面,比如當前社會基本需要、當前熱門專業及未來發展趨勢等。
資料庫是學習軟體開發類必須掌握的;
Python是開發語言,目前也是比較熱的開發語言;
交換機,路由器是網路硬體環境;
一套完整的系統運行起來,你仔細想想,其實會關聯許多專業和知識。
學校是希望基本面都點到,引領大家去入門,具體專攻學習方向,可以自己在之後的學習工作中去專攻。
⑺ python可以寫交換機和路由器的腳本語言嗎
交換機路由器多數是類UNIX平台,完全可以用python編譯,python兼容性非常廣
⑻ python 正則表達式 交換機介面配置匹配問題
python3.6我運行了一下,每個分組都只有最開始一個,後面都是空:
[('FastEthernet0/46','','',''),('FastEthernet0/47','','',''),('FastEthernet0/48','','',''),('GigabitEthernet0/1','','','')]
所以再檢查一下你貼的代碼是不是最新
⑼ 我想用python腳本telnet電腦Ensp里的交換機,但是沒效果,也沒報錯,是有什麼問題嗎求解答
1、在備份配置之前進行ping操作,所有IP地址放在HW_IP_List.txt中,ping通的地址放到HW_IP_True.txt中,ping不通的地址放到HW_IP_False.txt中。
腳本文件icmp_reply.py
#!/usr/bin/python
# -*- coding:gb2312 -*-
#import tab
import time,os
start_time = int (time.time())
def hw_ping_test():
ips = open('HW_IP_List.txt','r')
ip_True = open('HW_IP_True.txt','w')
ip_False = open('HW_IP_False.txt','w')
count_True,count_False=0,0
for ip in ips.readlines():
ip = ip.replace('\n','')
return1= os.system('ping -n 1 -w 1 %s'%ip)
if return1 :
print 'ping %s is fail'%ip
ip_False.write(ip+'\n')
count_False += 1
else:
print 'ping %s is ok'%ip
ip_True.write(ip+'\n')
count_True += 1
ip_True.close()
ip_False.close()
ips.close()
end_Time = int(time.time())
print "time(sencond):",end_Time - start_time,"s"
print "ping OK IP:",count_True," ping False IP:",count_False
hw_ping_test()
2、編輯核心腳本,調用icmp_reply.py,程序執行時會先自動運行icmp_reply.py,調用生成的HW_IP_True.txt文件,先要選擇設備類型,然後選擇執行的動作,輸入TFTP伺服器地址,程序就開始執行選擇的相應的動作。
⑽ python的paramiko模塊 支持連接交換機嗎
paramiko使用
paramiko模塊是基於python實現了SSH2遠程安全連接,支持認證和密鑰方式,可以實現遠程連接、命令執行、文件傳輸、中間SSH代理功能
安裝
pip install paramiko
或 easy_install paramiko
paramiko依賴第三方的Crypto,Ecdsa和pyhton-devel,所以需要安裝
paramiko核心組件
SSHClient類
SSHClient類是SSH服務會話的高級表示,該類實現了傳輸、通道、以及SFTP的校驗、建立的方法
connect 方法
connect方法實現了遠程ssh連接並作校驗
hostname 連接的目標主機
port=SSH_PORT 指定埠
username=None 驗證的用戶名
password=None 驗證的用戶密碼
pkey=None 私鑰方式用於身份驗證
key_filename=None 一個文件名或文件列表,指定私鑰文件
timeout=None 可選的tcp連接超時時間
allow_agent=True, 是否允許連接到ssh代理,默認為True 允許
look_for_keys=True 是否在~/.ssh中搜索私鑰文件,默認為True 允許
compress=False, 是否打開壓縮
sock=None,
gss_auth=False,
gss_kex=False,
gss_deleg_creds=True,
gss_host=None,
banner_timeout=None
參數
exec_command方法
遠程執行命令的方法,該命令的輸入與輸出流為標准輸入、標出輸出、標准錯誤輸出
command 執行的命令
bufsize=-1 文件緩沖區大小
timeout=None
get_pty=False
參數
load_system_host_key方法
夾在本地公鑰文件,默認為~/.ssh/known_hosts
filename=None 指定本地公鑰文件
參數
set_missing_host_key_policy方法
設置連接的遠程主機沒有本地主機密鑰或HostKeys對象時的策略,目前支持三種:
用法:
set_missing_host_key_policy(paramiko.AutoAddPolicy())
AutoAddPolicy 自動添加主機名及主機密鑰到本地HostKeys對象,不依賴load_system_host_key的配置。即新建立ssh連接時不需要再輸入yes或no進行確認
WarningPolicy 用於記錄一個未知的主機密鑰的python警告。並接受,功能上和AutoAddPolicy類似,但是會提示是新連接
RejectPolicy 自動拒絕未知的主機名和密鑰,依賴load_system_host_key的配置。此為默認選項
SFTPClient類
SFTPCLient作為一個sftp的客戶端對象,根據ssh傳輸協議的sftp會話,實現遠程文件操作,如上傳、下載、許可權、狀態
from_transport(cls,t) 創建一個已連通的SFTP客戶端通道
put(localpath, remotepath, callback=None, confirm=True) 將本地文件上傳到伺服器 參數confirm:是否調用stat()方法檢查文件狀態,返回ls -l的結果
get(remotepath, localpath, callback=None) 從伺服器下載文件到本地
mkdir() 在伺服器上創建目錄
remove() 在伺服器上刪除目錄
rename() 在伺服器上重命名目錄
stat() 查看伺服器文件狀態
listdir() 列出伺服器目錄下的文件
遠程連接並執行命令
實現遠程連接主機,並執行命令,同時記錄日誌
* 直接驗證方式