使用SFTP上傳與下載文件方式一:
import paramiko transport = paramiko.Transport(("106.15.88.182", 22)) # 獲取Transport實例 transport.connect(username="root", password="123456") # 建立連接 # 創建sftp對象,SFTPClient是定義怎么傳輸文件、怎么交互文件 sftp = paramiko.SFTPClient.from_transport(transport) # 將本地 api.py 上傳至服務器 /www/test.py。文件上傳並重命名為test.py sftp.put("E:/test/api.py", "/www/test.py") # 將服務器 /www/test.py 下載到本地 aaa.py。文件下載並重命名為aaa.py sftp.get("/www/test.py", "E:/test/aaa.py") # 關閉連接 transport.close()
使用SFTP上傳與下載文件方式二:
import paramiko client = paramiko.SSHClient() # 獲取SSHClient實例 client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect("106.15.88.182", username="root", password="123456") # 連接SSH服務端 transport = client.get_transport() # 獲取Transport實例 # 創建sftp對象,SFTPClient是定義怎么傳輸文件、怎么交互文件 sftp = paramiko.SFTPClient.from_transport(transport) # 將本地 api.py 上傳至服務器 /www/test.py。文件上傳並重命名為test.py sftp.put("E:/test/api.py", "/www/test.py") # 將服務器 /www/test.py 下載到本地 aaa.py。文件下載並重命名為aaa.py sftp.get("/www/test.py", "E:/aaa.py") # 關閉連接 client.close()
使用SFTP上傳與下載文件之封裝:
# -*- coding:utf-8 -*- import paramiko import uuid class SSHConnection(object): def __init__(self, host='192.168.2.103', port=22, username='root',pwd='123456'): self.host = host self.port = port self.username = username self.pwd = pwd self.__k = None def connect(self): transport = paramiko.Transport((self.host,self.port)) transport.connect(username=self.username,password=self.pwd) self.__transport = transport def close(self): self.__transport.close() def upload(self,local_path,target_path): # 連接,上傳 # file_name = self.create_file() sftp = paramiko.SFTPClient.from_transport(self.__transport) # 將location.py 上傳至服務器 /tmp/test.py sftp.put(local_path, target_path) def download(self,remote_path,local_path): sftp = paramiko.SFTPClient.from_transport(self.__transport) sftp.get(remote_path,local_path) def cmd(self, command): ssh = paramiko.SSHClient() ssh._transport = self.__transport # 執行命令 stdin, stdout, stderr = ssh.exec_command(command) # 獲取命令結果 result = stdout.read() print (str(result,encoding='utf-8')) return result ssh = SSHConnection() ssh.connect() ssh.cmd("ls") ssh.upload('s1.py','/tmp/ks77.py') ssh.download('/tmp/test.py','kkkk',) ssh.cmd("df") ssh.close()