国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

pythonparamiko

2019-11-14 17:06:27
字體:
來源:轉載
供稿:網友

paramiko 遵循SSH2協議,支持以加密和認證的方式,進行遠程服務器的連接,可以實現遠程文件的上傳,下載或通過ssh遠程執行命令。

項目地址:https://github.com/paramiko/paramiko

官方文檔:http://docs.paramiko.org/

一、安裝

root@Ubuntu:~/paramiko# pip install paramiko

測試是否安裝成功

>>> import paramiko>>>

二、上傳文件到遠程服務器

原理:通過SFTPClient類根據SSH傳輸協議的sftp會話,實現遠程文件上傳、下載等操作。實現遠程文件上傳、下載。

任務:10. 1.101.187向10.1.101.186發送文件。

10.1.101.187 目錄/root/paramiko  有三個文件 paramikosend.py  test  test.tar

10.1.101.186 目錄/root/paramiko   開始為空文件夾

執行python paramikosend.py,代碼如下

root@ubuntu:~/paramiko# cat paramikosend.py import paramiko,datetime,oshostname = '10.1.101.186'username = 'root'passWord = '123456'port = 22local_dir = '/root/paramiko'remote_dir = '/root/paramiko'try:        t=paramiko.Transport((hostname,port))        t.connect(username=username,password=password)        sftp = paramiko.SFTPClient.from_transport(t)        files = os.listdir(local_dir)        for f in files:                sftp.put(os.path.join(local_dir,f),os.path.join(remote_dir,f))        t.close()except Exception:        PRint "connect error!"

結果:

三、從遠程服務器下載文件

原理:通過SFTPClient類根據SSH傳輸協議的sftp會話,實現遠程文件上傳、下載等操作。實現遠程文件上傳、下載。

任務:現在10.1.101.186的/root/paramiko/temp186目錄有兩個文件,將其下載到10.1.101.187的/root/paramiko/temp187目錄。

 

執行 python paramikoget.py ,代碼如下

root@ubuntu:~/paramiko# cat paramikoget.py import paramiko,datetime,oshostname = '10.1.101.186'username = 'root'password = '123456'port = 22local_dir = '/root/paramiko/temp187'remote_dir = '/root/paramiko/temp186'try:        t=paramiko.Transport((hostname,port))        t.connect(username=username,password=password)        sftp = paramiko.SFTPClient.from_transport(t)        files = sftp.listdir(remote_dir) #這里需要注意,列出遠程文件必須使用sftp,而不能用os        for f in files:                sftp.get(os.path.join(remote_dir,f),os.path.join(local_dir,f))        t.close()except Exception:        print "connect error!"

結果:

四、執行命令測試

原理:通過SSHClient類執行命令。SSHClient類是SSH服務會話的高級表示,封裝了傳輸、通道以及SFTPClient的校驗、建立方法,通常用于執行命令。

任務:通過10.1.101.187連接到10.1.101.186,然后進入目錄/root/paramiko,創建一個目錄lxy。

執行python paramikocommand.py,代碼如下:

root@ubuntu:~/paramiko# cat paramikocommand.py #!/usr/bin/pythonimport paramikohostname = '10.1.101.186'username = 'root'password = '123456'port = 22ssh = paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh.connect(hostname=hostname,port=port,username=username,password=password)stdin, stdout, stderr = ssh.exec_command("cd  /root/paramiko;mkdir lxy")print stdout.readlines()ssh.close()

結果:

命令中也可以帶參數:

root@ubuntu:~/paramiko# cat paramikocommand.py #!/usr/bin/pythonimport paramikohostname = '10.1.101.186'username = 'root'password = '123456'port = 22name='testcmd'ssh = paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh.connect(hostname=hostname,port=port,username=username,password=password)stdin, stdout, stderr = ssh.exec_command("cd  /root/paramiko;mkdir %s" %name)print stdout.readlines()ssh.close()

Note:exec_command為單個會話,執行完成之后會回到登錄時的缺省目錄。

比如執行下面兩句。

stdin, stdout, stderr = ssh.exec_command("cd  /root/paramiko;mkdir %s" %name)stdin,stdout,stderr = ssh.exec_command('mkdir haha')

haha目錄最終是在缺省的/root目錄下新建的,而不是/root/paramiko目錄。

五、python遠程執行操作的其他開源模塊

fabric:fabric是封裝了paramiko模塊來實現ssh來傳輸文件的。

pexpect:也可以實現ssh 登錄到某個用戶指定的主機上,運行某個用戶指定的命令

 

本文作者starof,因知識本身在變化,作者也在不斷學習成長,文章內容也不定時更新,為避免誤導讀者,方便追根溯源,請諸位轉載注明出處:http://www.survivalescaperooms.com/starof/p/4670433.html有問題歡迎與我討論,共同進步。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 克什克腾旗| 巴青县| 祁阳县| 隆尧县| 武隆县| 左权县| 固阳县| 兴宁市| 左云县| 东山县| 任丘市| 房产| 卓资县| 精河县| 台东县| 新龙县| 沅江市| 建水县| 霍邱县| 毕节市| 广平县| 丹阳市| 安岳县| 江阴市| 鹰潭市| 潢川县| 洛隆县| 米泉市| 简阳市| 南昌市| 牙克石市| 集安市| 原平市| 清水县| 开远市| 元谋县| 南京市| 连城县| 开平市| 华宁县| 两当县|