亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 291
粉絲 0
評論 0
訪問量 450592
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
Python筆記之paramiko模塊安裝和使用示例
原創(chuàng)
1269人瀏覽過

鏡像下載、域名解析、時間同步請點擊 阿里云開源鏡像站

一、paramiko模塊簡介

??
paramiko是一個用于做遠(yuǎn)程控制的模塊,使用該模塊可以對遠(yuǎn)程服務(wù)器進(jìn)行命令或文件操作,基于linux中的ssh服務(wù) 。paramiko是第三方模塊,需要我們單獨安裝。通過paramiko模塊,我們可以利用python代碼程序?qū)崿F(xiàn)對設(shè)備的遠(yuǎn)程控制和文件傳輸?shù)炔僮?。博文實驗環(huán)境說明:

  • 操作系統(tǒng):centos7.6
  • python版本:3.9.12
  • pip版本:22.0.4
  • paramiko版本:2.10.4

二、paramiko安裝步驟

1、下載并安裝python3

實驗環(huán)境安裝的是當(dāng)前最新版python3.9.12。安裝方式可以參考博文linux之Centos7下安裝python3及pip3。

[root@s146 opt]# wget https://www.python.org/ftp/python/3.9.12/Python-3.9.12.tgz

2、安裝paramiko

file

實驗pip方式安裝paramiko可以自動安裝相關(guān)依賴。

[root@s146 setuptools-62.1.0]# pip3 install paramiko

3、獲取paramiko模塊幫助

file

三、使用示例

1、基于用戶名和密碼的 sshclient 方式登錄示例

編寫程序代碼

[root@s146 scripts]# vim test1.py

程序代碼如下

  1. # -*- coding: UTF-8 -*-
  2. # This is a test about paramiko
  3. # 實例化一個transport對象
  4. import paramiko
  5. ip = input("請輸入需要遠(yuǎn)程的主機IP地址:")
  6. uname = input("請輸入登錄用戶名:")
  7. pword = input("請輸入登錄密碼:")
  8. # 建立一個sshclient對象
  9. ssh = paramiko.SSHClient()
  10. # 允許將信任的主機自動加入到host_allow 列表,此方法必須放在connect方法的前面
  11. ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  12. # 調(diào)用connect方法連接服務(wù)器
  13. ssh.connect(hostname=ip,port=22,username=uname,password=pword)
  14. # 手動輸入待執(zhí)行命令
  15. mycmd = input("請輸入需要執(zhí)行的命令:")
  16. stdin,stdout,stderr = ssh.exec_command(mycmd)
  17. # 直接執(zhí)行指定命令
  18. ssh.exec_command('cd /tmp/ && touch paramiko.txt && echo "吳紅勝到此一游" > paramiko.txt')
  19. # 結(jié)果放到stdout中,如果有錯誤將放到stderr中
  20. print(stdout.read().decode())
  21. print(stderr.read().decode())
  22. # 關(guān)閉連接
  23. ssh.close()

執(zhí)行命令測試

file

[root@s146 scripts]# python3 test1.py

如上圖,可以看到結(jié)果正常執(zhí)行,命令執(zhí)行結(jié)果可以正常接收。

遠(yuǎn)端服務(wù)器檢查執(zhí)行情況

file

[root@s145 tmp]# cat paramiko.txt

吳紅勝到此一游

[root@s145 tmp]# ll

total 4

-rw-r–r— 1 root root 22 Apr 27 15:46 paramiko.txt

2、基于用戶名和密碼的 transport 方式登錄示例

編寫程序代碼

[root@s146 scripts]# vim test2.py

  1. # -*- coding: UTF-8 -*-
  2. # This is a test about paramiko
  3. import paramiko
  4. # 實例化一個transport對象
  5. trans = paramiko.Transport(('192.168.0.145', 22))
  6. # 建立連接
  7. trans.connect(username='root', password='123456')
  8. # 將sshclient的對象的transport指定為以上的trans
  9. ssh = paramiko.SSHClient()
  10. ssh._transport = trans
  11. # 執(zhí)行命令,和傳統(tǒng)方法一樣
  12. mycmd1 = input("請輸入需要執(zhí)行的命令一:")
  13. stdin,stdout,stderr = ssh.exec_command(mycmd1)
  14. print(stdout.read().decode())
  15. mycmd2 = input("請輸入需要執(zhí)行的命令二:")
  16. stdin,stdout,stderr = ssh.exec_command(mycmd2)
  17. print(stdout.read().decode())
  18. # 關(guān)閉連接
  19. trans.close()

執(zhí)行程序測試

file

[root@s146 scripts]# python3 test2.py

執(zhí)行完成命令1后,交換窗口輸入命令2

四、QA

??如上執(zhí)行第二條命令,間隔時間太短會有如下報錯。

報錯信息

[root@s146 scripts]# python3 test2.py

/usr/local/python3/lib/python3.9/site-packages/paramiko/transport.py:236: CryptographyDeprecationWarning: Blowfish has been deprecated

“class”: algorithms.Blowfish,

請輸入需要執(zhí)行的命令一:ls -l

total 4

-rw———-. 1 root root 1421 Dec 23 11:36 anaconda-ks.cfg

請輸入需要執(zhí)行的命令二:ls -l

total 4

-rw———-. 1 root root 1421 Dec 23 11:36 anaconda-ks.cfg

Exception ignored in: <function BufferedFile.del at 0x7f9c0db51a60>

Traceback (most recent call last):

File “/usr/local/python3/lib/python3.9/site-packages/paramiko/file.py”, line 66, in del

File “/usr/local/python3/lib/python3.9/site-packages/paramiko/channel.py”, line 1392, in close

File “/usr/local/python3/lib/python3.9/site-packages/paramiko/channel.py”, line 991, in shutdown_write

File “/usr/local/python3/lib/python3.9/site-packages/paramiko/channel.py”, line 967, in shutdown

File “/usr/local/python3/lib/python3.9/site-packages/paramiko/transport.py”, line 1908, in _send_user_message

AttributeError: ‘NoneType’ object has no attribute ‘time’

報錯原因:上一條命令執(zhí)行的通道還未關(guān)閉,等待關(guān)閉即可。

原文鏈接:https://blog.csdn.net/carefree2005/article/details/124582423

本博文版權(quán)歸博主所有,轉(zhuǎn)載請注明地址!如有侵權(quán)、違法,請聯(lián)系admin@php.cn舉報處理!
全部評論 文明上網(wǎng)理性發(fā)言,請遵守新聞評論服務(wù)協(xié)議
0條評論
作者最新博文
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費學(xué)