python ssh登录_python ssh登录linux 上传和下载文件

本文展示了如何使用Python的paramiko库通过SSH连接到Linux服务器,并执行命令(如获取日志文件)。此外,还演示了如何上传和下载文件,包括检查远程文件是否存在以及将远程文件保存到本地。
摘要由CSDN通过智能技术生成

#!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\n\n\n")

#

# 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 \n\n\n')

#

#

# 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")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值