paramiko遠程鏈接linux服務器進行上傳下載文件

花了很多時間來研究paramiko中sftpclient的文件傳輸,一頓操做猛如虎,最後就一直卡在了路徑報錯問題,瘋狂查閱資料借鑑大佬們的心得,仍是搞很差,睡了個午覺醒來,仔細一看原來是指定路徑的文件不存在,而後我下去買了個雪糕冷靜了下。留下代碼,供你們借鑑,能夠直接拿來用就好了。

import paramiko
class Linux(object):     def __init__(self,ip,username,password,timout = 30):         self.hostname = ip         self.username = username         self.password = password         self.port = 22         self.t = ''         self.chan = ''         #鏈接重試次數         self.try_times = 3      #調用改方法鏈接linux主機     def conn(self):         pass     #斷開鏈接     def close(self):         pass     #發送要執行的命令     def send(self):         pass     #上傳文件     def sftp_put(self,localfile,remotefile):         # 設置SSH鏈接的遠程主機地址和端口         t = paramiko.Transport((self.hostname, 22))         # 設置登錄用戶名和密碼等參數         t.connect(username=self.username, password=self.password)         #將實例化的Transport做爲參數傳入SFTPClient中         sftp = paramiko.SFTPClient.from_transport(t)         # 將本地的test.txt put到遠端,並保持爲test.txt         sftp.put(localfile,remotefile)         #關閉鏈接         t.close()     # 下載文件     def sftp_get(self,remotefile,newlocalfile):         t = paramiko.Transport((self.hostname, 22))         t.connect(username=self.username, password=self.password)         sftp = paramiko.SFTPClient.from_transport(t)         # 將遠端的test.txt put到遠端,並保持爲newtest.txt         sftp.get(remotefile,newlocalfile )         # 關閉鏈接         t.close()if __name__ == '__main__':    localpath = r'I:\Meitu\數據庫密碼.txt'    remotepath = r'/usr/local/test/數據庫密碼.txt'    newlocalpath = r'I:\Meitu\newtest.gz'    host = Linux('192.168.55.158', 'root', '1')    host.sftp_put(localpath,remotepath)    host.sftp_get(remotepath,newlocalpath)
相關文章
相關標籤/搜索