Python远程连接Linux执行操作

一、任务要求

要使用Python编写代码来远程给Linux主机上传一个文件,可以使用paramiko库,这是一个实现了SSHv2协议的Python库,它支持SSH连接(包括客户端和服务端),并且提供SFTP(SSH File Transfer Protocol)功能来上传和下载文件。

实现python编写代码远程登录linux主机,执行一条命令ls
实现python编写代码远程给linux主机上传一个文件

二、相关代码

连接虚拟机并执行ls操作:

import paramiko
# 设置SSH连接信息
hostname = '192.168.*.*'
port = 22
username = 'zhou'
password = '*'  # 或者使用私钥进行身份验证
# 创建SSH客户端对象
ssh = paramiko.SSHClient()
# 自动添加主机名和主机密钥到本地HostKeys对象,并保存,只在第一次连接时有用
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接到SSH服务器
ssh.connect(hostname=hostname, port=port, username=username, password=password)
# 执行ls命令
stdin, stdout, stderr = ssh.exec_command('ls -l')
# 打印输出
print(stdout.read().decode())
print(stderr.read().decode())
# 关闭连接
ssh.close()

连接虚拟机并给主机上传一个文件:

(确保目录在远程Linux主机上存在,并且您有权限在该目录下写入文件)

import paramiko
def upload_file(local_file, remote_file, port, hostname, username, password):# 创建SSH客户端ssh = paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 自动添加主机名和主机密钥到本地HostKeys对象,并保存# 连接到SSH服务器ssh.connect(hostname=hostname, port=port, username=username, password=password)# 创建一个SFTP客户端对象sftp = ssh.open_sftp()# 上传文件sftp.put(local_file, remote_file)# 关闭SFTP和SSH连接sftp.close()ssh.close()# 使用示例
if __name__ == "__main__":# Linux 主机信息hostname = '192.168.*.*'  # Linux主机IP地址username = 'zhou'  # SSH用户名password = '******'  # SSH密码port = 22# 上传文件local_file = r"D:\Desktop\蛋糕系统\代码\1.txt" # 本地文件路径remote_file = "/home/zhou/ccc/1.txt" # 远程Linux主机上的目标路径upload_file(local_file, remote_file, port, hostname, username, password)

三、执行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/9709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vision Mamba:高效视觉表示学习双向状态空间模型,超越Vision Transformer!

DeepVisionary 每日深度学习前沿科技推送&顶会论文分享,与你一起了解前沿深度学习信息! Vision Mamba: Efficient Visual Representation Learning with Bidirectional State Space Model 引言:探索视觉领域的新方向 在计算机视觉领域&…

地球行星UE5和UE4

地球行星,包含多种地球风格,可蓝图控制自转和停止,可材质自转. 支持版本4.21-5.4版本 下载位置:https://mbd.pub/o/bread/ZpWZm5lv b站工坊:https://gf.bilibili.com/item/detail/1105582041 _______________________…

luceda ipkiss教程 68:通过代码模板提高线路设计效率

在用ipkiss设计器件或者线路时,经常需要输入: from ipkiss3 import all as i3那么有什么办法可以快速输入这段代码呢?这里就可以利用Pycharm的 live template功能,只需要将文件:ipkiss.xml (luceda ipkiss教程 68&…

Vue3:项目创建

Vue 3 相对于 Vue 2 带来了许多改进和优点,这些改进主要是为了提高性能、开发体验和可维护性。但是对于创建项目,Vue3也可以采用跟Vue2相同的方式。 使用CLI创建 1. 安装Vue CLI 首先,确保你已经安装了Node.js(建议使用LTS版本…

金蝶向左,用友向右

【科技明说 | 科技热点关注】 科技明说分析指出,金蝶和用友作为国内数一数二的财务软件巨头,两者不仅是竞争对手,也是很好的发展队友,在云计算时代、AI时代都相继进行了不同程度的产品与服务创新。与时俱进的好处&…

如何将图片表格转成excel?分享3种好用的软件!

在信息爆炸的时代,我们每天都会接触到大量的图片表格。这些表格中可能包含着我们需要的各种数据和信息,但是如何将它们快速、准确地转化为Excel格式,以便我们进行编辑、分析呢?今天,就让我们一起来探讨一下如何将图片表…

图形网络的自适应扩散 笔记

1 Title Adaptive Diffusion in Graph Neural Networks(Jialin Zhao、Yuxiao Dong、Ming Ding、Evgeny Kharlamov、Jie Tang)【NIPS 2021】 2 Conclusion The neighborhood size in GDC is manually tuned for each graph by conductin…

AXI4写时序在AXI Block RAM (BRAM) IP核中的应用

在本文中将展示描述了AXI从设备(slave)AXI BRAM Controller IP核与Xilinx AXI Interconnect之间的写时序关系。 1 Single Write 图1是一个关于32位宽度的BRAM(Block RAM)的单次写入操作的例子。这个例子展示了如何向地址0x1000h…

MySQL——变量的浮点数问题处理

新建链接,自带world数据库,里面自带city表格。 DQL #MySQL变量的浮点数问题处理 set dx3.14,dy3.25; select dxdy;#计算显示异常,会有很多00000的提示set resultdxdy; select result; 查询结果

C++青少年简明教程:C++中的常量、变量、表达式和语句

C青少年简明教程:C中的常量、变量、表达式和语句 在C编程中,常量、变量、表达式和语句是基本的编程概念。 常量(Constants):在程序中具有固定值的数据称为常量。常量可以是字面值,如整数、浮点数、字符或…

【挑战30天首通《谷粒商城》】-【第一天】【10 番外篇】 解决docker 仓库无法访问 + MobaXterm连接VirtualBox虚拟机

文章目录 课程介绍 1、解决docker 仓库无法访问 2、 MobaXterm连接VirtualBox虚拟机 Stage 1:下载MobaXterm选择适合你的版本 Stage 2:vagrant ssh 连接,开启ssh访问 Stage 2-1:su获取root账号权限,输入密码(默认vagra…

【Web】CTFSHOW 七夕杯 题解

目录 web签到 easy_calc easy_cmd web签到 CTF中字符长度限制下的命令执行 rce(7字符5字符4字符)汇总_ctf中字符长度限制下的命令执行 5个字符-CSDN博客7长度限制直接梭了 也可以打临时文件RCE import requestsurl "http://4ae13f1e-8e42-4afa-a6a6-1076acd08211.c…

C++ Builder XE EnumWindowsProc遍历所有窗口的名称

BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam) { // 这里可以添加你的处理逻辑 // 例如,将句柄添加到列表中或者其他操作 // 这里我们仅仅输出到调试窗口 OutputDebugString(L"枚举窗口句柄: "); char windowHandle[10];…

ICode国际青少年编程竞赛- Python-4级训练场-while语句入门

ICode国际青少年编程竞赛- Python-4级训练场-while语句入门 1、 while Flyer.disappear():wait() Dev.step(2)2、 Dev.step(1) while Flyer.disappear():wait() Dev.step(5)3、 while Flyer[0].disappear():wait() Dev.step(3) Dev.step(-1) while Flyer[0].disappear():…

准实时数仓搭建指南:以仓储式会员商超为模拟场景

在电商和新零售持续冲击传统零售商超的今天,仓储式会员店反而成功逃脱曾经的“水土不服”预测,业绩一路向好。与此同时,随着人工智能、大数据、智慧物流等技术的不断革新,零售批发的消费场景也进一步拓展,对数据分析的…

RERCS系统-WDA+BOPF框架实战例子 PART 1-新建List UIBB(列表组件)并分配Feeder Class和Node Element

需求背景: 已有的项目主数据功能,新增一个列表UIBB显示主数据额外的关联数据明细。 1、Fiori页面通过右键-技术帮助打开对应的组件配置; 2、双击对应的组件配置,调整对应的页面新建UIBB; 3、填写对应的UIBB属性字段&a…

doris 启动be报错

doris版本是1.2.4 java版本是:1.8 刚开始我以为是版本不兼容问题,后面发现思路错了,版本是兼容的,报以下错我的原因是操作系统没有达到安装要求 以下是博主在部署doris x64(avx2)版本中遇到的小bug 在大家使用doris的时候应该…

OpenNJet,够轻更强云原生应用引擎

前言: 在正式介绍OpenNJet之前,我们先来看看它的技术架构,如下图所示,OpenNJet正是NGINX的Pro版,在100%兼容NGINX基础上,新增了动态配置加载、主动式健康检测、集群高可用、声明式API等多种强大功能。 NGIN…

2024.05.10作业

TCP服务器 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> #include <QTcpSocket> #include <QList> #include <QMessageBox> #include <QDebug>QT_BEGIN_NAMESPACE namespace Ui { class Widget; …

【神器来袭】快速解放双手,朋友圈自动转发工具,告别繁琐操作!

朋友圈作为一个重要的营销推广渠道&#xff0c;如果能实现自动转发&#xff0c;那对于很多企业或个人来说&#xff0c;是极好的。下面&#xff0c;就给大家分享一个实用且便捷的朋友圈运营工具——个微管理系统&#xff0c;让大家都能快速推广。 1、多账号登录&#xff0c;定时…