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)解题思想: 用5个数 a,b,c,d,e,来回替换,最终f(n)算出。设计程序如下:int F(int n){ if(n <5) return n ;int temp,a1;b2;c3;d4;e5;fo…

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

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

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

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

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

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

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

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

C语言算法6-15
2019独角兽企业重金招聘Python工程师标准>>> 【程序6】 题目:用*号输出字母C的图案。 1.程序分析:可先用*号在纸上写出字母C,再分行输出。 2.程序源代码: #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零基础入门系列】(已完结)导航目录 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 日,由中国 IT 社区 CSDN 与硅谷 AI 社区 AICamp 联合出品的 2018 AI 开发者大会(AI NEXTCon)将于北京盛大召开。届时,近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者将齐聚于此,展开全方位技…

经典的Java基础面试题集锦
问题:如果main方法被声明为private会怎样? 答案:能正常编译,但运行的时候会提示”main方法不是public的”。 问题:Java里的传引用和传值的区别是什么? 答案:传引用是指传递的是地址而不是值本身…

c语言组队,组队列问题。会做的高手帮帮忙啊
算法实验题4.10 组队列问题 问题描述:组队列是一个特殊的抽象数据类型,它所支持的运算类似于队列运算具有附加的组属性。因此入队运算 Enqueue(x)与通常定义的运算不eue(x)运算将元素x加入当前队列中与元素x 属于同一组的元素的尾有与x属于同一组的元素&…

算力超英伟达?华为推出两款“昇腾”芯片;五大AI战略正式公布
整理 | 非主流、费棋 出品 | AI科技大本营 华为也像是要 All in AI 了。 10 月 10 日,华为全联接大会 2018 上,华为轮值董事长徐直军带来了一系列的硬核 AI。在大会上,他系统公布了华为的 AI 发展战略,以及全栈全场景 AI 解决方案…

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