在做自动化测试过程中, 偶尔需要登录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

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

  1. 问题描述:执行*.sh命令出现问题

    背景 执行*.sh命令时候出现如下问题 : invalid option Usage: /bin/bash [GNU long option] [option] .../bin/bash [GNU l ...

  2. 命令行无法运行php,php不支持执行cmd命令行

    php不支持执行cmd命令行是因为你没有关闭php配置文件中的安全模式. 在php.ini文件中配置safe_mode参数支持命令执行的方法: 首先,打开php.ini,关掉安全模式safe_mode ...

  3. python 界面编程 并执行sh命令

    #!/usr/bin/python # -*- coding: UTF-8 -*- from Tkinter import * # 导入 Tkinter 库 import thread import ...

  4. python里面执行sh命令

    import os neo4j_data_file_path = "/opt/script" os.system('rm -rf %s' % neo4j_data_file_pat ...

  5. Linux下执行.sh命令出现-bash: ./bin/start.sh: /bin/bash^M: bad interpreter: No such file or directory...

    原因是 文件的格式是dos,修改为unix 就OK了 查看文件格式  用vim 打开出错的文件    按 ESC键     再按shift+冒号   输入 set  ff  回车   可以看见 该文件 ...

  6. Linux下执行.sh命令出现-bash: ./bin/start.sh: /bin/bash^M: bad interpreter: No such file or directory 问题解决

    出现如下这个问题,一般都是文本格式是dos格式,需改为unix格式. 查看文件格式  用 vim 打开出错的文件    按 ESC键     再按shift+冒号   输入 set  ff  回车   ...

  7. Linux命令之远程登录与执行远程主机命令

    实现远程登录的命令 ssh.telnet.rlogin (1)ssh命令 ssh命令是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器.ssh命令用于远程登录上Li ...

  8. python可以在linux运行_在linux运行python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! linux下编译安装python3与python2共存linux下默认系统自带p ...

  9. Python 执行 shell命令 的几个方法小结

    参考:https://blog.csdn.net/ronnyjiang/article/details/53333538 Python 执行 shell 命令 Python 可以执行 shell 命令 ...

最新文章

  1. 生产环境主从数据同步不了?
  2. ZwQueryVirtualMemory暴力枚举进程模块
  3. HarmonyOS之常用组件TextField的功能和使用
  4. 视频大时代下基础架构的演进
  5. qt窗口关闭退出程序_Qt5 窗口关闭信号的响应~
  6. 0909关于操作系统
  7. 图解 深入浅出 JavaWeb:Servlet 再说几句
  8. innodb是如何存数据的?yyds
  9. WPF TextBox只能输入数字
  10. 数据可视化 -- Python
  11. 给定a、b两个文件,各存放50亿个url,每个url各占用64字节,内存限制是4G,如何找出a、b文件共同的url?...
  12. Linux编辑启动停止重启springboot jar包脚本
  13. python pyodbc mysql,【python】 pyodbc连接mysql
  14. 一定要讲给孩子们的27个小故事
  15. 代数余子式之和怎么算_小明说养老 | 养老金怎么算之月平均缴费指数怎么来的?...
  16. 文小刚:量子革命是最不可思议的物理革命
  17. cropper.js 实现HTML5 裁剪上传头像
  18. 网络socket编程实现并发服务器——多线程编程
  19. 游戏开发:游戏内小红点的实现方案
  20. 极狐GitLab Helm Registry 的使用

热门文章

  1. 在Ubuntu 14.04 64bit上编译安装xbt tracker
  2. Linux的watch命令--实时监测命令的运行结果
  3. Linux下系统性能检测利器dstat
  4. mui ios中form表单中点击输入框头部导航栏被推起及ios中form表单中同时存在日期选择及输入框时,日历选择页面错乱bug...
  5. python学习随笔(七)_函数
  6. JavaSE--jdom解析之bom
  7. 设计模式之代理模式(Proxy Pattern)
  8. QQ拼音在中文输入下默认英文标点
  9. 【转】推荐!国外程序员整理的Java资源大全
  10. 【转载】图像缩放与插值理论基础