zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    词法定界
    Lua 多维表的遍历中的赋值
    mac虚拟机parallels 无法启动 "Windows 7" 虚拟机
    MAC下Android的Eclipse开发环境的搭建
    Lua 的函数库 01
    mac 安装lua并配置Subline Text2 的lua开发环境
    Sublime Text2 注册码 汉化 配置lua开发环境
    js 月历 时间函数 月份第一天 星期的判断
    android 判断app是否处于前台
    android 更新下载apk
  • 原文地址:https://www.cnblogs.com/ray-mmss/p/10619220.html
Copyright © 2011-2022 走看看