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
python远程登录linux命令,Python+requests通过paramiko远程登录Linux执行sh命令相关推荐
- 问题描述:执行*.sh命令出现问题
背景 执行*.sh命令时候出现如下问题 : invalid option Usage: /bin/bash [GNU long option] [option] .../bin/bash [GNU l ...
- 命令行无法运行php,php不支持执行cmd命令行
php不支持执行cmd命令行是因为你没有关闭php配置文件中的安全模式. 在php.ini文件中配置safe_mode参数支持命令执行的方法: 首先,打开php.ini,关掉安全模式safe_mode ...
- python 界面编程 并执行sh命令
#!/usr/bin/python # -*- coding: UTF-8 -*- from Tkinter import * # 导入 Tkinter 库 import thread import ...
- python里面执行sh命令
import os neo4j_data_file_path = "/opt/script" os.system('rm -rf %s' % neo4j_data_file_pat ...
- Linux下执行.sh命令出现-bash: ./bin/start.sh: /bin/bash^M: bad interpreter: No such file or directory...
原因是 文件的格式是dos,修改为unix 就OK了 查看文件格式 用vim 打开出错的文件 按 ESC键 再按shift+冒号 输入 set ff 回车 可以看见 该文件 ...
- Linux下执行.sh命令出现-bash: ./bin/start.sh: /bin/bash^M: bad interpreter: No such file or directory 问题解决
出现如下这个问题,一般都是文本格式是dos格式,需改为unix格式. 查看文件格式 用 vim 打开出错的文件 按 ESC键 再按shift+冒号 输入 set ff 回车 ...
- Linux命令之远程登录与执行远程主机命令
实现远程登录的命令 ssh.telnet.rlogin (1)ssh命令 ssh命令是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器.ssh命令用于远程登录上Li ...
- python可以在linux运行_在linux运行python
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! linux下编译安装python3与python2共存linux下默认系统自带p ...
- Python 执行 shell命令 的几个方法小结
参考:https://blog.csdn.net/ronnyjiang/article/details/53333538 Python 执行 shell 命令 Python 可以执行 shell 命令 ...
最新文章
- 生产环境主从数据同步不了?
- ZwQueryVirtualMemory暴力枚举进程模块
- HarmonyOS之常用组件TextField的功能和使用
- 视频大时代下基础架构的演进
- qt窗口关闭退出程序_Qt5 窗口关闭信号的响应~
- 0909关于操作系统
- 图解 深入浅出 JavaWeb:Servlet 再说几句
- innodb是如何存数据的?yyds
- WPF TextBox只能输入数字
- 数据可视化 -- Python
- 给定a、b两个文件,各存放50亿个url,每个url各占用64字节,内存限制是4G,如何找出a、b文件共同的url?...
- Linux编辑启动停止重启springboot jar包脚本
- python pyodbc mysql,【python】 pyodbc连接mysql
- 一定要讲给孩子们的27个小故事
- 代数余子式之和怎么算_小明说养老 | 养老金怎么算之月平均缴费指数怎么来的?...
- 文小刚:量子革命是最不可思议的物理革命
- cropper.js 实现HTML5 裁剪上传头像
- 网络socket编程实现并发服务器——多线程编程
- 游戏开发:游戏内小红点的实现方案
- 极狐GitLab Helm Registry 的使用
热门文章
- 在Ubuntu 14.04 64bit上编译安装xbt tracker
- Linux的watch命令--实时监测命令的运行结果
- Linux下系统性能检测利器dstat
- mui ios中form表单中点击输入框头部导航栏被推起及ios中form表单中同时存在日期选择及输入框时,日历选择页面错乱bug...
- python学习随笔(七)_函数
- JavaSE--jdom解析之bom
- 设计模式之代理模式(Proxy Pattern)
- QQ拼音在中文输入下默认英文标点
- 【转】推荐!国外程序员整理的Java资源大全
- 【转载】图像缩放与插值理论基础