zoukankan      html  css  js  c++  java
  • python ssh登录linux 上传和下载文件

    #!usr/bin/python
    # coding: utf-8


    import paramiko
    import json
    remotedir='/tmp/log'
    remotefile = 'bst_manager-2019-04-17-info.log'
    hostname = '192.168.50.34'
    port = 8022
    username = 'root'
    password ='*****'
    command = """tail -n 30 /tmp/log/bst_manager-2019-04-17-info.log | grep 'other'"""


    def ssh_remote():
    """ 1、基于用户名和密码连接
    """
    print ("基于用户名和密码连接")
    # 创建SSH对象
    ssh = paramiko.SSHClient()
    # 允许连接不再know_host文件的主机
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # 连接服务器
    ssh.connect(hostname, port, username, password)
    # 执行命令
    stdin, stdout, stderr = ssh.exec_command(command)
    data = stdout.readline()
    cloud_data = json.loads(data)['other']

    with open("../test_data_dev/data.json", 'w+', 0) as f:
    cloud_data = json.dumps(cloud_data, indent=4, separators=(',', ':'))
    f.write(cloud_data)
    ssh.close()
    print ("1. over ")

    #
    # def ssh_remote_moth2():
    #
    # """ 2、基于用户名和密码连接
    # """
    # print ("基于用户名和密码连接,使用SSHClient, 封装Transport")
    # ssh = paramiko.SSHClient()
    # transport = paramiko.Transport(sock=(hostname, port))
    # # print transport
    # transport.connect(username=username, password=password)
    #
    # ssh._transport = transport
    # stdin, stdout, stderr = ssh.exec_command(command)
    # data = json.loads(stdout.readline())["other"]
    #
    # with open("../test_data_dev/data.json", 'w+', 0) as f:
    # cloud_data = json.dumps(data, indent=4, separators=(',', ':'))
    # f.write(cloud_data)
    # ssh.close()
    #
    # transport.close()
    # print ('2. over ')
    #
    #
    # def down_device_file():
    #
    # transport = paramiko.Transport(('192.168.50.34', 8022))
    # transport.connect(username='root', password='O3OwTr(01{@sVhDL')
    #
    # sftp = paramiko.SFTPClient.from_transport(transport)
    # sftp.put('/tmp/location.txt', '/tmp/sensoro/server.txt')
    #
    # # 检查有无上传成功
    # ssh = paramiko.SSHClient()
    # ssh._transport = transport
    # stdin, stdout, stderr = ssh.exec_command('ls -al /tmp/sensoro/')
    # print(str(stdout.read(), encoding='utf-8'))
    #
    # # 将remove_path 下载到本地 local_path
    # sftp.get('/root/conf/bst_conf.json', '/Users/linyue/mywork/server_file/bst_conf.json')
    #
    # transport.close()
    # print("3. over")
























  • 相关阅读:
    使用.Net Core+IView+Vue集成上传图片功能
    Vue基于vue-quill-editor富文本编辑器使用心得
    Fiddler原理~知多少?
    ASP.NET Core WebApi中简单像素转换跟踪实现
    利用SQL Profiler 追踪数据库操作
    ASP.NET Core Web API 版本控制
    处理SQL Server中的重复行
    【3分钟就会系列】使用Ocelot+Consul搭建微服务吧!
    ASP.NET Core WebAPI控制器返回类型的最佳选项
    花10分钟搞懂开源框架吧
  • 原文地址:https://www.cnblogs.com/lin-yue/p/10723528.html
Copyright © 2011-2022 走看看