首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将远程(Paramiko) ssh命令的输出求值为成功/失败布尔值

基础概念

Paramiko 是一个用于 SSHv2 协议的 Python 实现,它允许你在 Python 程序中连接到远程服务器并执行命令。通过 Paramiko,你可以创建一个 SSH 客户端,连接到远程服务器,执行命令,并获取命令的输出。

相关优势

  1. 跨平台:Paramiko 支持多种操作系统,包括 Windows、Linux 和 macOS。
  2. 安全性:使用 SSH 协议进行通信,确保数据传输的安全性。
  3. 灵活性:可以执行任意命令,并获取命令的输出,适用于各种自动化任务。

类型

Paramiko 主要用于以下几种类型的应用:

  1. 远程命令执行:在远程服务器上执行命令并获取输出。
  2. 文件传输:通过 SFTP 进行文件的上传和下载。
  3. 端口转发:实现本地端口到远程端口的转发。

应用场景

  1. 自动化运维:通过脚本自动化执行远程服务器上的任务。
  2. 监控和报警:定期执行远程命令,检查服务器状态,并根据结果发送报警。
  3. 部署和配置管理:在多台服务器上部署应用程序并进行配置管理。

问题及解决方案

问题:如何将远程 SSH 命令的输出求值为成功/失败布尔值?

当你通过 Paramiko 执行远程命令时,可以通过检查命令的退出状态码来判断命令是否成功执行。通常,退出状态码为 0 表示命令成功,非 0 表示命令失败。

以下是一个示例代码,展示如何使用 Paramiko 执行远程命令并判断其成功与否:

代码语言:txt
复制
import paramiko

def run_remote_command(hostname, username, password, command):
    # 创建 SSH 客户端
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    
    try:
        # 连接到远程服务器
        ssh.connect(hostname, username=username, password=password)
        
        # 执行命令
        stdin, stdout, stderr = ssh.exec_command(command)
        
        # 获取命令的退出状态码
        exit_status = stdout.channel.recv_exit_status()
        
        # 判断命令是否成功
        if exit_status == 0:
            return True
        else:
            return False
    except Exception as e:
        print(f"Error: {e}")
        return False
    finally:
        # 关闭 SSH 连接
        ssh.close()

# 示例调用
hostname = 'your_remote_host'
username = 'your_username'
password = 'your_password'
command = 'ls -l'

result = run_remote_command(hostname, username, password, command)
print(f"Command execution {'succeeded' if result else 'failed'}")

参考链接

通过上述代码,你可以将远程 SSH 命令的输出求值为成功/失败布尔值。希望这对你有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python Paramiko实现sftp文件上传下载以及远程执行命令

一、简介 Paramiko模块是基于Python实现SSH远程安全连接,用于SSH远程执行命令、文件传输等功能。..."%local_path)     else:         print("上传文件: %s 成功" % local_path) 执行输出: 上传文件: D:/text.txt 成功 三、下载文件 def..."%server_path)     else:         print("下载文件: %s 成功" % server_path) 执行输出: 下载文件: /tmp/tmp.txt 成功 四、远程执行命令...def ssh_exec_command(host,user,password, cmd,timeout=10):     """     使用ssh连接远程服务器执行命令     :param host...['data'][0].strip()  # 获取实际值     print("操作系统: %s"%value) 执行输出: 操作系统: Ubuntu 16.04.2 LTS 五、错误集锦 1.

9.5K20

【实战小项目】python开发自动化运维工具--批量操作主机

我觉得一个批量操作工具应该考虑以下几点: (1)本质上,就是到远程主机上执行命令并返回结果。 (2)做到批量。也就是要并发对多台机器进行操作。 (3)返回结果,清晰地展示给用户。...2 到远程机器上执行命令远程机器上执行命令,并返回结果,至少有两种方式:一是用paramiko模块;而是可以建立机器互信,从中控执行ssh命令。...,0表示成功,非0表示失败;第二行开始就是我们命令返回结果。...并且当拿到结果之后,我还做了一些格式化输出,比如绿色输出表示成功,红色输出表示命令执行失败,黄色表示提醒等。废话不多说,直接看代码吧!...既显示了各个主机各个命令执行状态码,返回结果,最后还汇总结果,成功了多少台机器和失败了多少台机器。 我们还可以换一下执行命令,让命令执行失败看看: ?

1.3K20
  • 原来Python是这样连接远程主机,你会吗?

    导语: 在软件测试过程中,涉及到远程Linux主机环境测试时候,难免会遇到需要执行shell命令场景,比如通过shell命令去配置一些环境或者去检查用例执行结果等等,那么就是用到了比较常用工具...有了Paramiko以后,我们就可以在Python代码中直接使用SSH协议对远程服务器执行操作,而不是通过ssh命令远程服务器进行操作。下面主要介绍一下Paramiko一些相关概念。...),通常用于执行远程命令。...SFTPClient作用类似与Linuxsftp命令,是对SFTP客户端封装,用以实现远程文件操作,如文件上传、下载、修改文件权限等操作。...此为默认选项 (3) exec_command():在远程服务器执行Linux命令方法。 在这里插入图片描述 (4) open_sftp():在当前ssh会话基础上创建一个sftp会话。

    2K40

    在家想远程公司电脑?Python +微信一键连接

    Linux 主机需要能够远程访问,我这里是有 FRP 树莓派端口映射到我公网 Linux 主机上。所以可以随时远程 SSH 过去。 Windows 机器网卡必须是有线连接,支持网络唤醒功能。...开机实现思路 首先通过微信发送开机指令,这里我使用是 itchat 程序会调用 Paramiko 库去 SSH 远程到内网树莓派执行 WakeOnLan 命令去唤醒 Windows 主机。...,返回开机成功,否则程序继续往下走,去唤醒,然后在 ping 一次确认是否开机,如果是则返回开机成功,否则返回失败。...然后 SSH 到树莓派去 ping 目标主机,如果返回空,则说明关机成功,否则关机失败。...Windows需要安装TeamViewer并且设置开机自动启动以及绑定账号设置无人值守模式。这样方便远程,如果是Linux 则不需要开启 ssh 就可以了。

    1.2K20

    Python 检测系统时间,k8s版本,redis集群,etcd,mysql,ceph,kafka

    tree命令查看ceph节点信息 kafka,要求:使用生产者模式写入一个消息,消费者模式能得到同样消息,则kafka服务正常 python远程执行命令 上面这么多要求,有一大部分,都需要远程执行命令...那么如何使用python来执行远程命令呢? 使用paramiko模块即可!...    """     使用ssh连接远程服务器执行命令     :param username: 用户名     :param passwd: 密码     :param cmd: 执行命令     ..., cmd):     """     使用ssh连接远程服务器执行命令     :param username: 用户名     :param passwd: 密码     :param cmd: 执行命令...):     """     使用ssh连接远程服务器执行命令     :param username: 用户名     :param passwd: 密码     :param cmd: 执行命令

    1.7K11

    Paramiko远程操作Linux服务器

    本篇介绍一个Python第三方库Paramiko,使用Paramiko,我们可以在Python脚本中进行SSH连接Linux服务器并远程执行Linux命令。...其实每次搭建环境所用Linux命令几乎都是相同,于是我们就可以借助Paramiko这些命令编写成Python脚本,进而实现自动搭建测试环境。...='服务器地址', port='端口', username='用户名', password='密码') # 执行远程命令 # 使用exec_command()方法执行远程命令,并使用stdout对象获取命令输出...、stderr对象获取命令报错信息,可以根据需要对输出进行处理和显示 stdin, stdout, stderr = client.exec_command('你要执行命令') # 获取命令输出...&& 运算符表示只有在前一个命令成功执行后,才会执行后续命令。因此,我们 cd 命令和需要在目标目录中执行其他命令连接在一起。

    30420

    Python 也是可以!!

    场景1:打包、部署基于 Webpack、React 前端应用; 每完成一个新功能或每修正一个bug,就需要: npm run build:在本地对项目进行构建; tar:构建结果(dist)压缩...tar 包; sftp:上传 tar 包到远程服务器; ssh:在远程服务器上,停止运行中旧应用;启动新应用; browser:打开浏览器,看升级是否成功; 场景2:打包、部署基于 Maven、SpringBoot...;启动新应用; ssh:查看启动日志,观察启动是否成功; brower:打开浏览器,看升级是否成功; 上面这两个场景,每天都需要重复进行很多次 emmm......Paramiko?Fabric? paramiko 是基于Python实现 SSH2 远程安装连接,支持认证及密钥方式。可以实现远程命令执行,文件传输,中间SSH代理等功能。...Fabric在 paramiko 基础上做了更高一层封装,简化了 SSH 应用程序部署及系统管理任务,它提供了系统基础操作组件,可以实现本地或远程 shell 命令,包括命令执行,文件上传,下载及完整执行日志输出等功能

    37930

    Python建立SSH连接与使用方法

    4.连接成功后,可以使用exec_command方法来执行任意命令。...-l”命令,并将输出打印到控制台上。...SSH隧道操作方式如下: 在本地机器上运行SSH客户端,并指定远程主机IP地址和登录凭据。 在SSH连接中添加隧道,指定本地端口和远程主机上端口。...连接到远程主机后,本地端口将被转发到远程主机上指定端口,从而实现数据隧道传输。 SSH代理操作方式如下: 在本地机器上运行SSH客户端,并指定远程主机IP地址和登录凭据。...在SSH连接中添加代理,指定本地端口和远程主机上端口。 在本地机器上配置代理服务器SSH代理。 连接到远程主机后,所有网络流量都将通过SSH代理传输。

    1.3K10

    借助Paramiko通过Python实现linux远程登陆及sftp操作

    paramiko是一个用于做远程控制模块,使用该模块可以对远程服务器进行命令或文件操作,paramiko是用python语言写一个模块,遵循SSH2协议,支持以加密和认证方式,进行远程服务器连接...l” 然后你会发现,你输出有很多你并不需要,但是又不去不掉一些信息。...对于shell 命令,可以直接使用管道,或者标准输出重定向到文件方法取得执行结果。 2....") # 使用这个连接执行命令 ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command("ls -l") # 获取输出 print(ssh_stdout.read...import paramiko # 指定本地RSA私钥文件 # 如果建立密钥对时设置了密码,passwordpassphrase。

    3.6K20

    python安装需要安装paramiko

    2.paramiko是用python语言写一个模块,遵循SSH2协议,支持以加密和认证方式,进行远程服务器连接。...二、安装 1.由于centos5.9版本是2.4.3,所以首先得python进行升级。...>>> 呵呵,这样就安装成功了 三:使用paramiko 如果大家感觉安装paramiko还是略有麻烦的话,当使用到paramiko提供方便时便会觉得这是十分值得。...: t.connect(username = “用户名”, password = “口令”, hostkey=”密钥”) 下面给出实际例子: 3.1windows对linux运行任意命令,并将结果输出...() ssh.close() 其中”你命令”可以任意linux支持命令,如一些常用命令: df:查看磁盘使用情况uptime:显示系统运行时间信息cat:显示某文件内容mv/cp/mkdir/rmdir

    1.6K20

    Python执行Linux命令、上传下载远程文件

    这里用到Python库是Paramiko 核心知识点(亮点): 1、Python连接远程Linux服务器 2、执行命令并返回结果 3、上传文件到远程Linux服务器 4、从远程Linux下载文件 01...2.paramiko核心组件 SSH组件:SSHClient,作用类似于Linuxssh命令,用于执行远程命令。...这里辰哥以自己远程服务器例给大家演示,首先先连接服务器 import paramiko # ip、用户名、密码 ip = "远程LinuxIP地址" port = 22 user = "root"...命令,如:ls # 输入linux命令 command1 = "ls" ssh.exec_command(command1) # stdout 正确输出,stderr错误输出 stdin, stdout...04 小结 本文讲解了Paramiko库,并讲解ssh和sftp两大组件,设计核心知识点(亮点): 1、Python连接远程Linux服务器 2、执行命令并返回结果 3、上传文件到远程Linux服务器

    2.4K10

    随笔记录之自定义 SSH 服务

    前言 SSH(Secure Shell)协议是一种加密网络传输协议,使得在不安全网络环境中可以安全执行远程登录、远程命令执行和数据传输等操作。...连接协议(Connection Protocol):连接协议负责在已建立安全连接上提供多种服务,如交互式 Shell、远程命令执行、端口转发和文件传输等。... format 参数设置 serialization.PublicFormat.SubjectPublicKeyInfo,表示希望输出公钥 SubjectPublicKeyInfo 格式... format 参数设置 serialization.PublicFormat.SubjectPublicKeyInfo,表示希望输出公钥 SubjectPublicKeyInfo 格式。...完成这种动作,需要在 SSH 服务端,字符 UI 界面的输入流和输出流与 ssh 客户端session 输入流和输出流进行对应绑定。

    1.2K3316

    python paramiko模块简介

    python paramiko模块简介 一:简介     paramiko是用python语言写一个模块,遵循SSH2协议,支持以加密和认证方式,进行远程服务器连接。     ...#设置ssh连接远程主机地址和端口 t=paramiko.Transport((ip,port)) #设置登录名和密码 t.connect(username=username,password=password...) #连接成功后打开一个channel chan=t.open_session() #设置会话超时时间 chan.settimeout(session_timeout) #打开远程terminal chan.get_pty...运行任意命令,并将结果输出 如果linux服务器开放了22端口,在windows端,我们可以使用paramiko远程连接到该服务器,并执行任意命令,然后通过 print或其它方式得到该结果, 代码如下...()   ssh.close() 其中”你命令”可以任意linux支持命令 4.2 从widnows端下载linux服务器上文件  coding:utf8     import paramiko

    1K10

    python实现ssh及sftp功能(实例代码)

    1.在Linux上我们通过scp命令实现主机间文件传送,通过ssh实现远程登录 ,比如 我们经常使用xshell远程登录工具,就是基础ssh协议实现window主机远程登录Linux主机  下面简单在...python实现这几个功能 下面使用到paramiko模块,这个不是python内置模块,我直接通过pycharm下载这个模块, 第一步实现一个简单ssh登录命令 代码如下: import paramiko...,但总算连接成功了,应为开始虚拟机在学习iptables加了许多规则,并且在ssh 服务器端修改了默认端口一直 连不上,修改配置文件后设置允许远程主机远程连接 ,/etc/ssh/sshd_config...文件在,私钥拷贝到windows主机环境目录下 , import paramiko private_key = paramiko.RSAKey.from_private_key_file('id_rsa31....decode()) # 关闭连接 ssh.close() 成功实现了免密连接,代码知识做简单测试用,以连接为主,没考虑其他实际需要 这些东西玩了一下午,还是挺神奇

    1.5K20

    网络工程师学Python-34-SSH客户端和服务器库Paramiko

    在本文中,我们介绍如何使用Paramiko库来建立SSH连接、执行远程命令、传输文件等。图片安装Paramiko要使用Paramiko库,我们需要先安装它。...执行远程命令使用Paramiko库执行远程命令也很简单,只需将命令作为字符串传递给exec_command()方法。...需要注意是,在某些情况下,需要使用strip()方法删除输出结果中换行符。图片传输文件使用Paramiko库传输文件也很简单,只需使用SFTPClient类即可。...SFTPClient对象,并使用put()方法本地文件传输到远程主机上。...图片结论在本文中,我们介绍了如何使用Python Paramiko库实现SSH客户端和服务器功能,包括建立SSH连接、执行远程命令、传输文件等。

    1.4K30
    领券