• paramiko远程上传下载文件


    import paramiko
    import sys
    
    
    user = "root"
    pwd = "123456"
    
    
    
    # 上传文件
    def sftp_upload_file(server_path, local_path):
        try:
            t = paramiko.Transport((ip, 22))
            t.connect(username=user, password=pwd)
            sftp = paramiko.SFTPClient.from_transport(t)
            sftp.put(local_path, server_path)
            t.close()
        except Exception as  e:
            print(e)
    
    # 下载文件
    def sftp_down_file(server_path, local_path):
        try:
            t = paramiko.Transport((ip, 22))
            t.connect(username=user, password=pwd)
            sftp = paramiko.SFTPClient.from_transport(t)
            sftp.get(server_path, local_path)
            t.close()
        except Exception as e:
            print(e)
    
    # 连接
    def ssh_conn(ip, cmd):
    
        ssh = paramiko.SSHClient()
        # 允许连接不在known_hosts文件上的主机
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        # 连接服务器
        ssh.connect(ip, 22, user, pwd)
        # 执行命令
        stdin, stdout, stderr = ssh.exec_command(cmd)
        # 获取结果
        print(10 * "-", 'start', 10 * "-")
        for line in stdout:
            res=(line.strip('
    ').split())
            print(res)
        else:
            print(stdout)
        print(10 * "-", 'end', 10 * "-")
    
    def menu():
        print('''
        * - - - - - - - - - - - - - - - - - *     
                       菜单                     
                    1>上传文件                 
                    2>下载文件
                    3>执行命令
                    4>退出
        * - - - - - - - - - - - - - - - - - *
        ''')
    
        choice = int(input('请输入你要执行的操作:
    '))
        if choice == 1:
            src = input('请输入原路径:
    ')
            dest = input('请输入目标路径:
    ')
            sftp_upload_file(src, dest)
        elif choice == 2:
            src = input('请输入原路径:
    ')
            dest = input('请输入目标路径:
    ')
            sftp_down_file(src, dest)
        elif choice == 3:
            while True:
                cmd = input('请输入要执行的命令:
    ')
                if cmd == 'eixt':
                    sys.exit()
                ssh_conn(ip, cmd)
        else:
            sys.exit()
    
    
    if __name__ == '__main__':
        ip = input('请输入目标ip:
    ')
        while True:
            menu()
  • 相关阅读:
    DataBindings 与 INotifyPropertyChanged 实现自动刷新 WinForm 界面
    EasyInvoice 使用教程
    下载网页通用类
    c#操作excel的一些记录
    sql数据库基础知识整理,常用函数及常用语法
    动态行转列 pivot实现
    EFCodeFirst 数据迁移问题~
    asp.net 翻页时用ViewState保存上一页checkbox勾选的值
    参数化拼接in查询条件,个人备份
    retry
  • 原文地址:https://www.cnblogs.com/ray-mmss/p/10619220.html
Copyright © 2020-2023  润新知