当前位置: 首页 > 编程日记 > 正文

python远程登录linux命令,Python+requests通过paramiko远程登录Linux执行sh命令

在做自动化测试过程中, 偶尔需要登录Linux服务器执行一些sh命令。Python的paramiko模块, 遵循SSH2协议, 支持以加密和认证的方式远程连接服务器, 可用来连接远程linux主机, 然后执行Linux命令或者通过SFTP传输文件

封装的方法

import paramiko

class Operate_Server():

def __init__(self, hostname, port, username):

self.hostname = hostname # 服务器IP地址

self.port = port # 服务器登录端口号

self.username = username # 登录账号

def run(self, command, **kwargs):

"""

:command: sh命令

:param kwargs: 传参(private_key: 私钥路径) (password: 密码)

:return:

"""

try:

# 创建SSHClient对象,ssh

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 通过密钥调用connect函数建立Linux连接

if "private_key" in kwargs.keys():

private_key = paramiko.RSAKey.from_private_key_file(kwargs["private_key"])

ssh.connect(

hostname=self.hostname, port=self.port, username=self.username, pkey=private_key)

# 通过密码调用connect函数建立Linux连接

if "password" in kwargs.keys():

ssh.connect(

hostname=self.hostname, port=self.port, username=self.username, password=kwargs["password"])

print(" 账号[{0}]成功登录服务器[{1}]".format(self.username, self.hostname))

# 执行sh命令并返回执行结果

result = ssh.exec_command(command)[1].read()

print(" shell命令[%s]执行结果:%s" % (command, result))

# 登出服务器

ssh.close()

print(" 登出服务器[%s]" % self.hostname)

except Exception as e:

print("发生未知错误:%s" % e)

raise

if __name__ == "__main__":

# 通过密码登录

Operate_Server(hostname="IP", port=22, username="用户").run(command="pwd", password="密码")

# 通过密钥认证登录

Operate_Server(hostname="IP", port=22, username="用户").run(command="pwd", private_key="私钥路径")

本文地址:https://blog.csdn.net/weixin_43507959/article/details/108270783

相关文章:

2017-09-29 前端日报

2017-09-29 前端日报 精选 被誉为神器的requestAnimationFrame我是怎样让网站用上HTML5 ManifestReact 的性能优化(一)当 PureComponent 遇上 ImmutableJSJavaScript 异步队列实现及拓展CSS Grid Gotchas And Stumbling BlocksAbortable fetchAlloyTeam …

Apache Kylin v2.5.0正式发布,开源分布式分析引擎

文章转载自开源中国,作者 Apache Kylin 社区日前,Apache Kylin 社区宣布,Apache Kylin v2.5.0 正式发布。Apache Kylin 是一个开源的分布式分析引擎,旨在为极大数据集提供 SQL 接口和多维分析(OLAP)的能力。…

不同职业阶段的修炼: 多与少

有多才有少 开学第一天,教室里挤满来选修“领导”课程的学生,这一群两年后就会变成企业竞相争取的名校MBA,心中难免兴奋地等待教授的出现。教室门被推开后,走进三个人,教授后面跟着一个年轻的陌生人,还有一…

underscorejs之 _.indexBy(list, iteratee, [context])

语法 _.indexBy(list, iteratee, [context]) 说明 给定一个list,和 一个用来返回一个在列表中的每个元素键 的iterator 函数(或属性名), 返回一个每一项索引的对象。和groupBy非常像,但是当你知道list的key是唯一的时候…

linux shell $0怎么输出,linux shell中$0,$?,$!等的特殊用法

一、Shell脚本中$0、$?、$!、$$、$*、$#、$等的意义说明(1)$$Shell本身的PID(ProcessID,即脚本运行的当前进程ID号)(2)$!Shell最后运行的后台Process的PID(后台运行的最后一个进程的进程ID号)(3)$?最后运行的命令的结束代码(返回值)即执行上一个指令的返回值 (显示…

云从科技完成B+轮超10亿元融资,多个国家基金进入

10 月 8 日,中国人工智能国家队云从科技宣布正式完成新一轮超 10 亿元人民币融资,除元禾原点、越秀金控,刘益谦等原有股东继续跟投外,本轮新增了多家中国国家战略投资者,其中不乏知名地方政府基金,包括中国…

12×××求职经过-之求职信

求职信: 鼠:本地户口,以前在武钢工地打过工,转移过一部分钢材的所有权,被当做失足青年挽救三年。擅长上夜班,会开麻木,求社区服务,家政等职。 牛:身体好,能吃…

面向对象三大特性一一封装(encapsulation)

为什么要封装? 我们看电视,只要按一下开关和换台就行了。有必要了解电视的内部结构吗?有必要了解显像管吗? 封装是为了隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性&a…

云计算赋能人工智能,未来的红利在哪?

“云”这个概念对于身处于信息时代的我们而言越来越熟悉,而云计算平台作为对计算机软硬件资源进行集中存储、管理的平台,已经不再是一个遥远的 IT 概念,它开始渗透到各行各业,未来将会像水和电一样,作为基础设施&#…

pxe linux 配置文件,Linux PXE 部署

一、基础环境准备Linux配置静态IP-192.168.5.1# vim /etc/sysconfig/network-scripts/ifcfg-eth0DEVICEeth0ONBOOTyesBOOTPROTOstaticIPADDR192.168.5.1NETMASK255.255.255.0:x --保存退出#service network restart#service iptables stop二、准备安装镜像#mount /dev/cdrom /m…

Keras还是TensorFlow?深度学习框架选型实操分享

译者| 王天宇、林椿眄责编| Jane、琥珀出品| AI科技大本营深度学习发展势头迅猛,但近两年涌现的诸多深度学习框架让初学者无所适从。如 Google 的 TensorFlow、亚马逊的 MXNet、Facebook 支持的 PyTorch、Theano、Caffe、CNTK、Chainer、百度的 PaddlePaddle、DSSTN…

Android -- queryIntentActivities

某些时候你想要知道某个APP是否有注册了一个明确的intent,比如说你想要检查某个receiver是否存在,然后根据是否存在来这个receiver来在你的AP里面enable某些功能。我们可以通过PackageManager来check它。 code public boolean isIntentAvailable(Context…

吉大c语言程序设计作业一,吉林大学历年C语言程序设计试题及答案.doc

吉林大学历年C语言程序设计试题及答案吉林大学历年C语言程序设计试题及答案(5)END2000年试题答案一、(1)解题思想&#xff1a; 用5个数 a,b,c,d,e,来回替换&#xff0c;最终f(n)算出。设计程序如下&#xff1a;int F(int n){ if(n <5) return n ;int temp,a1;b2;c3;d4;e5;fo…

忍不住心中的激动

天天上自行车旅行网&#xff0c;看到别人的出行游记&#xff0c;心里很羡慕&#xff0c;也很冲动&#xff0c;想想还有1个多月就可以出发了&#xff0c;不知道能坚持到哪里&#xff0c;恒心是有的&#xff0c;可身体就不知道&#xff0c;不过这次时间可以不用那么紧&#xff0c…

程序员入错行怎么办?

程序员应该选择什么技术领域才能获得最高的回报&#xff1f;本文详细解读了 2018 年最热门的五大领域&#xff0c;对行业现状、薪资概况及具体的技能要求给出了深入的分析&#xff0c;希望给担心“入错行”的你提供些指导。七天国庆黄金周转眼就过&#xff0c;退散的除了出游热…

关于局域网共享访问问题总结

Windows网上邻居互访的基本条件&#xff1a;  1) 双方计算机打开&#xff0c;且设置了网络共享资源&#xff1b;  2) 双方的计算机添加了 "Microsoft 网络文件和打印共享" 服务&#xff1b;  3) 双方都正确设置了网内IP地址&#xff0c;且必须在一个网段中&…

Linq初级班 Linq To XML体验(基础篇)

LINQ To XML体验(基础) 这两天开始学习LINQ to XML的知识,我会继续把自己的感想和示例发布给初学者们学习的,一样欢迎高手们多多指点,请勿使用过激语言,针锋相对,我是个初学者,自知还有许多不足的地方,还请高手们多多耐心指导,好了,下面就开始我们的LINQ to XML旅程吧,在此之前…

c语言字符串机考题,2016全国计算机二级《C语言》机考试题及答案

2016全国计算机二级《C语言》机考试题及答案一、程序填空题(共18分)下列给定程序中&#xff0c;函数fun的功能是&#xff1a;求ss所指字符串数组中长度最短的字符串所在的行下标&#xff0c;作为函数值返回&#xff0c;并把其串长放在形参n所指的变量中。ss所指字符串数组中共有…

如何快速优化机器学习的模型参数

作者 | Thomas Ciha译者 | 刘旭坤编辑 | Jane出品 | AI科技大本营【导读】一般来说机器学习模型的优化没什么捷径可循。用什么架构&#xff0c;选择什么优化算法和参数既取决于我们对数据集的理解&#xff0c;也要不断地试错和修正。所以快速构建和测试模型的能力对于项目的推进…

2004-10-26+ 用户输入的安全问题

最近在看一本叫《asp.net安全性高级编程》&#xff0c;把一些感兴趣的东西写成笔记当到这里吧&#xff0c;今天这一篇主要是讲怎么防御注入攻击的。script injection 1.验证内容a.使用regularexpressionvalidator的正则表达式来限制用户输入2.筛选用户输入a.使用string.replace…

在C语言中break语句称为,在C语言中,break语句的功能是退出函数

摘要&#xff1a;燃烧煤中质在中过程所含矿物&#xff0c;语言k语高温和氧化后分解&#xff0c;称为&#xff0c;体残的固留物生成。出函只装锅炉机时称(引风。语言k语锅炉规格都以其公取的常用称压一般为选力和来作阀门上的。...燃烧煤中质在中过程所含矿物&#xff0c;语言k语…

C语言算法6-15

2019独角兽企业重金招聘Python工程师标准>>> 【程序6】 题目&#xff1a;用*号输出字母C的图案。 1.程序分析&#xff1a;可先用*号在纸上写出字母C&#xff0c;再分行输出。 2.程序源代码&#xff1a; #include "stdio.h" main() { printf("Hello C…

二维数组c语言矩阵加法,C 语言实例 – 两个矩阵相加 - C 语言基础教程

C 语言实例使用多维数组将两个矩阵相加。#include int main(){int r, c, a[100][100], b[100][100], sum[100][100], i, j;printf("输入行数 ( 1 ~ 100): ");scanf("%d", &r);printf("输入列数 ( 1 ~ 100): ");scanf("%d", &c…

自动生成HTML的一段程序

<%ifSaveFile("list.htm","http://192.168.1.4:920/lcy.asp") thenResponse.write "已生成"elseResponse.write "没有生成"endiffunctionSaveFile(LocalFileName,RemoteFileUrl) DimAds, Retrieval, GetRemoteData OnErrorRe…

【JAVA零基础入门系列】Day2 Java集成开发环境IDEA

【JAVA零基础入门系列】&#xff08;已完结&#xff09;导航目录 Day1 开发环境搭建Day2 Java集成开发环境IDEADay3 Java基本数据类型Day4 变量与常量Day5 Java中的运算符Day6 Java字符串Day7 Java输入与输出Day8 Java的控制流程Day9 Java中的那个大数值Day10 Java中的数组Day1…

只讲技术,拒绝空谈!2018 AI开发者大会精彩议程曝光

2018 年 11 月 8-9 日&#xff0c;由中国 IT 社区 CSDN 与硅谷 AI 社区 AICamp 联合出品的 2018 AI 开发者大会&#xff08;AI NEXTCon&#xff09;将于北京盛大召开。届时&#xff0c;近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者将齐聚于此&#xff0c;展开全方位技…

经典的Java基础面试题集锦

问题&#xff1a;如果main方法被声明为private会怎样&#xff1f; 答案&#xff1a;能正常编译&#xff0c;但运行的时候会提示”main方法不是public的”。 问题&#xff1a;Java里的传引用和传值的区别是什么&#xff1f; 答案&#xff1a;传引用是指传递的是地址而不是值本身…

c语言组队,组队列问题。会做的高手帮帮忙啊

算法实验题4.10 组队列问题 问题描述&#xff1a;组队列是一个特殊的抽象数据类型&#xff0c;它所支持的运算类似于队列运算具有附加的组属性。因此入队运算 Enqueue(x)与通常定义的运算不eue(x)运算将元素x加入当前队列中与元素x 属于同一组的元素的尾有与x属于同一组的元素&…

算力超英伟达?华为推出两款“昇腾”芯片;五大AI战略正式公布

整理 | 非主流、费棋 出品 | AI科技大本营 华为也像是要 All in AI 了。 10 月 10 日&#xff0c;华为全联接大会 2018 上&#xff0c;华为轮值董事长徐直军带来了一系列的硬核 AI。在大会上&#xff0c;他系统公布了华为的 AI 发展战略&#xff0c;以及全栈全场景 AI 解决方案…

《SharePoint Portal Server 2003 深入指南》出版预告

《SharePoint Portal Server 2003 深入指南》在8月底、9月初应该就会上市了&#xff0c;如果您想得到这本书&#xff0c;方法包括&#xff1a; 1、等到书店到货之后&#xff0c;在书店购买。 2、网上订购。比如在Dearbook上&#xff1a;http://www.dearbook.com.cn/book/110838…