天天看點

python通過ssh連接配接伺服器,上傳、下載下傳檔案

import paramiko


class LinuxFile:

    def __init__(self, ip, port, username, password):
        try:
            self.ip = ip
            self.port = port
            self.username = username
            self.password = password
            self.transport = paramiko.Transport((str(self.ip), int(self.port)))
            self.transport.connect(username=self.username, password=self.password)
            self.sftp = paramiko.SFTPClient.from_transport(self.transport)
        except Exception as e:
            raise e

    def up_file(self, localhost_file, server_file):
        """
        将本地檔案上傳至伺服器
        :param localhost_file: 本地檔案路徑
        :param server_file: 伺服器儲存路徑
        :return:
        """
        self.sftp.put(localhost_file, server_file)

    def down_file(self, localhost_file, server_file):
        """
        将伺服器檔案下載下傳至本地
        :param localhost_file: 本地檔案路徑
        :param server_file: 伺服器儲存路徑
        :return:
        """
        self.sftp.get(localhost_file, server_file)

    def close(self):
        """
        關閉伺服器
        :return:
        """
        self.transport.close()


if __name__ == '__main__':
    test = LinuxFile('192.168.16.105', '22', 'root', 'admin123')
    test.up_file('../2020-10-11_20-21-28.py', '/root/2020-10-11_20-21-28.py')
    test.down_file('/root/2020-10-11_20-21-28.py','2020-10-11_20-21-28.py')