随笔 - 30  文章 - 0  评论 - 0  阅读 - 6257

python-远程操作linux(命令执行+执行结果打印+文件上传下载)

一、下载三方包

【1】pip install paramiko

二、代码执行

【1】在代码最后需要加上sys.exit()--原因不明,否则会报错:AttributeError: 'NoneType' object has no attribute 'time'

# -*- coding:utf-8 -*-
# __author__:pansy
# 2022/5/14
import sys

import paramiko

# 创建ssh对象(客户端)
ssh = paramiko.SSHClient()

# 设定连接方式
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 将主机名、新主机密钥添加

# 发起远程连接
ssh.connect('x.x.x.x',22,'x','x')

# 在远程执行linux命令,用字符串的形式传递命令,exec_command会返回三个参数
stdin,stdout,stderr = ssh.exec_command('pwd')
# 打印执行结果,读取出来的stdout内容可以用read读取,但是是b类型,需要转换成字符串
print(stdout.read().decode('utf8'))

ssh.close()
sys.exit()

三、文件上传下载

# -*- coding:utf-8 -*-
# __author__:pansy
# 2022/5/14
import paramiko

# 创建ssh对象(客户端)
ssh = paramiko.SSHClient()

# 设定连接方式
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 将主机名、新主机密钥添加

# 发起远程连接
ssh.connect('*.*.*.*',22,'root','*')

# 创建sftp对象
sftp = ssh.open_sftp()
# 从远程下载文件到本地:linux上的文件路径,本地存储的路径
sftp.get('/home/log4j2.xml','./log4j2.xml')
# 将本地文件传送到远程linux:本地文件路径,linux上的存储路径
sftp.put('/Users/panshaoying/Desktop/database/远程操作linux/log4j2.xml','/home/log4j2.xml')

 

posted on   墙角一枝花  阅读(964)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示