python ssh clinet

业务需要, 封装了一个ssh 客户端;

import paramiko

host = "192.168.11.1"
port = 22
user = "1"
pw = "1"


class SshClient:
    def __init__(self) -> None:
        self.ssh_client = paramiko.SSHClient()
        self.ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        self.ssh_client.connect(hostname=host, port=port, username=user, password=pw)
        self.ftp_client = self.ssh_client.open_sftp()

    def ssh_exec(self, cmd):
        _, stdout, stderr = self.ssh_client.exec_command(cmd)
        print(stdout.read())
        print(stderr.read())

    def get_ssh_exec(self, cmd):
        _, stdout, _ = self.ssh_client.exec_command(cmd)
        out_data = stdout.read().strip().decode("utf8")
        return out_data

    def ftp_get(self, remote_file, local_file):
        self.ftp_client.get(remote_file, local_file)

    def ftp_put(self, local_file, remote_file):
        self.ftp_client.put(local_file, remote_file)

    def __del__(self):
        self.ssh_client.close()
        self.ftp_client.close()
# 调用展示某目录下的文件
cam_files = SshClient().get_ssh_exec(f"ls /root/")
# 下载某文件
vf = "/root/a.txt"
filename = "a.new.txt"
SshClient().ftp_get(vf, f"/tmp/{filename}")
posted @ 2024-11-19 09:57  干炸小黄鱼  阅读(13)  评论(0)    收藏  举报