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

在服务器上执行命令的脚本结尾处的Paramiko "TypeError:'NoneType‘对象不可调用“

Paramiko是一个用于在Python中执行SSHv2协议的模块,它提供了一个简单而强大的API来进行远程服务器的连接和操作。在服务器上执行命令的脚本结尾处出现的Paramiko "TypeError:'NoneType'对象不可调用"错误通常是由于未正确处理返回的结果对象引起的。

当使用Paramiko执行远程命令时,可以通过调用exec_command()方法来执行命令,并返回一个包含标准输入、标准输出和标准错误的文件对象。在执行完命令后,需要使用readlines()方法读取输出结果。

下面是一个示例代码,演示了如何使用Paramiko执行远程命令并正确处理返回结果:

代码语言:txt
复制
import paramiko

# 创建SSH客户端
client = paramiko.SSHClient()

# 自动添加远程服务器的主机密钥
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 连接远程服务器
client.connect('服务器IP地址', username='用户名', password='密码')

# 执行命令
stdin, stdout, stderr = client.exec_command('要执行的命令')

# 读取输出结果
output = stdout.readlines()

# 打印输出结果
for line in output:
    print(line.strip())

# 关闭SSH连接
client.close()

在上述代码中,需要将服务器IP地址替换为实际的远程服务器IP地址,用户名密码替换为实际的登录凭据。

Paramiko还提供了其他一些功能,例如上传和下载文件、创建SFTP会话等。更多详细信息和示例代码可以参考腾讯云的Paramiko产品文档:Paramiko产品文档

需要注意的是,以上答案中没有提及亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等流行的云计算品牌商,以遵守问题中的要求。

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

相关·内容

通过python 执行 nohup 不生效解决

通过paramiko模块ssh登录linux,然后用exec_command方法执行带有nohupshell命令不生效,python脚本如下: import paramiko import time...123456') chan = ssh.invoke_shell() chan.send('nohup ping localhost & \n') time.sleep(1) 注意,命令最后回车\n和延时必不可少...补充知识:paramiko远程服务器nohup阻塞问题 一、需求描述: 需要来回切换多台服务器脚本命令不太熟),就用了pythonparamiko模块进行远程连接服务器,控制程序停止和启动。...安装:pip install paramiko 二、问题描述: import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts...三、解决方法 import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中主机 ssh.set_missing_host_key_policy

3.2K10

解决paramiko执行命令超时问题

问题:paramiko远程执行命令,需要等到命令返回信息,如果命令执行时间比较长,返回信息就需要等很久 方案: 1、使用nohup + 待执行命令 + & ,使用后台执行方式,应该可以快速返回 2、设置...其实上面的两种方案都不可行:方案1,需要优化,下面这种直接调用方式会导致test.sh启动不起来 stdin, stdout, stderr = self.client.exec_command(‘...result_info = "" for line in stdout.readlines(): result_info += line print result_info 将test.sh和run.sh传到远程服务器...②、发起远程执行 本地执行 python test.py,会发现整个脚本不会立即打印run ok,而是等30s之后才打印包括test.sh所有输出信息。...执行命令超时问题就是小编分享给大家全部内容了,希望能给大家一个参考。

3.7K20

python使用paramiko实现ssh功能详解

有需要深入研究可以阅读官方文档。 paramiko模块提供了ssh及sft进行远程登录服务器执行命令和上传下载文件功能。...,此方法必须放在connect方法前面 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 调用connect方法连接服务器 ssh.connect...transport 方式登录 方法1是传统连接服务器执行命令、关闭一个操作,有时候需要登录上服务器执行多个操作,比如执行命令、上传/下载文件,方法1则无法实现,可以通过如下方式来操作 # 实例化一个...stderr中 print(stdout.read().decode()) # 关闭连接 ssh.close() 以上需要确保被访问服务器对应用户.ssh目录下有authorized_keys文件,也就是将服务器生成公钥文件保存为...xshell登录系统效果,登录到系统就不断输入命令同时返回结果 支持自动补全,直接调用服务器终端 ''' # 建立一个socket trans = paramiko.Transport(('192.168.2.129

16.7K11

python paramiko模块

唯一要注意就是遇到未知主机时候,ssh处理策略。这个要设置好。不然know_hosts文件里没有的主机第一次登陆时候会被拒绝掉。 使用SSH秘钥登陆代码如下: #!...填写刚才创建transport对象来创建一个sftp对象  sftp = paramiko.SFTPClient.from_transport(transport) # 将location.py 上传至服务器...        #调用连接方法连接服务器         self.connect()         #调用paramikoSSH方法实现远程执行命令         ssh = paramiko.SSHClient..."""         #调用连接方法连接服务器         self.connect()         #调用paramikosftp方法实现远程上传命令         sftp = paramiko.SFTPClient.from_transport...__transport)         #调用sftp.put方法把本地文件上传到服务器

83630

用Python远程登陆服务器最佳实践

来源 | Python编程时光(ID: Cool-Python) 使用 Python 写一些脚本时候,某些情况下,我们需要频繁登陆远程服务去执行一次命令,并返回一些结果。...原来 ssh 方法接收一个 _out 参数,这个参数可以为一个字符串,表示文件路径,也可以是一个文件对象(或者类文件对象),还可以是一个回调函数,意思是当有标准输出时,就会调用将输出内容传给这个函数。...bake 这种方式,my_server.ls() 和 my_server.ifconfig() 这种看似是通过同一个ssh连接,执行两次命令,可实际,你可以远程机器,执行 top 命令看到已连接终端变化...有时候需要登录上服务器执行多个操作,比如执行命令、上传/下载文件,方法1 则无法实现,那就可以使用 transport 方法。...ssh 到远程服务器去获取一些信息,那么我把 Paramiko 推荐给你。

2.9K20

Paramiko远程操作Linux服务器

本篇将介绍一个Python第三方库Paramiko,使用Paramiko,我们可以Python脚本中进行SSH连接Linux服务器并远程执行Linux命令。...例如要想在Linux服务器上进行测试环境部署,传统做法是使用SSH工具(例如:Xshell、Xftp、FinalShell、secureCRT、PuTTY等)连接远程服务器,然后手动Linux服务器输入一条一条命令...='服务器地址', port='端口', username='用户名', password='密码') # 执行远程命令 # 使用exec_command()方法执行远程命令,并使用stdout对象获取命令输出...cffi是Paramiko一个依赖项,安装Paramiko时会附带安装。...使用cd命令进行目录切换时不生效 当使用Paramiko库远程执行命令时,cd命令无法直接切换目录,这是因为cd是一个shell内置命令,无法直接通过Paramiko执行,此时可以通过执行命令时添加额外命令前缀来模拟

26720

Python编程常见出错信息及原因分析(2)

遇到这种错误时,首先应使用type()函数确定当前位置x是什么类型,然后可以使用dir()确定该类型对象是否具有'***'属性或方法。...,这里'NoneType'是个很好提示。遇到这种错误时,需要仔细检查出现问题代码之前函数调用或方法调用。...: 'str' object does not support item assignment 错误原因分析与解决方案: 自己编写代码时,一般并不会发生这样错误,因为作为Python程序员我们肯定知道元组和字符串是不可容易对象...遇到这种错误时,一般是调用了其他函数或方法而不知道该函数或方法返回是元组或字符串或其他不可变容易对象,应仔细检查出现错误代码之前函数或方法调用代码。...中,列表、元组、字符串和range对象支持使用整数作为下标去访问指定位置元素值;列表支持使用整数作为下标去修改指定位置元素值;字典支持使用指定键去访问或修改对应值。

3.3K70

Python:指定 SSH-ED25519 公钥算法访问 OpenSSH-server

这在增强安全性同时,也给一些依赖旧公钥算法工具和脚本带来了兼容性问题。本文将探讨如何解决 Python 脚本在这种环境下无法正常连接服务器问题。...问题背景 最新版本 OpenSSH 服务器中,默认配置仅支持 ssh-ed25519 公钥算法。...工具开发 我们可以扩展该脚本以支持命令行参数输入主机信息、区分执行命令和上传文件功能。下面是一个完整解决方案,包括处理命令行参数代码,并区分执行命令和上传文件逻辑。...sftp.put(local_path, remote_path) sftp.close() def execute_command(ssh_client, command): """远程服务器执行命令...确保使用最新版本 Paramiko 和正确配置公钥算法,可以保证脚本更安全 SSH 环境中正常运行。

8310

python之ssh连接

paramiko是用python语言写一个模块,遵循SSH2协议,支持以加密和认证方式,进行远程服务器连接。跟常用软件xshell 、xftp功能一样,但是可以连接多台服务器,进行复杂操作。...列表,此方法必须放在connect方法前面 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 调用connect方法连接服务器...transport 方式登录 方法1是传统连接服务器执行命令、关闭一个操作,有时候需要登录上服务器执行多个操作,比如执行命令、上传/下载文件,方法1则无法实现,可以通过如下方式来操作 # 实例化一个...authorized_keys文件,也就是将服务器生成公钥文件保存为authorized_keys。...对象transport指定为以上trans ssh = paramiko.SSHClient() ssh.

2.6K10

Python执行或远程执行shell命令

方案一:脚本本地执行命令 Python中有两个库都可以实现运行shell命令效果: import subprocess import os 使用方法也很简单: # subprocess 使用方法 subprocess.call...("ls") # 执行ls命令 # os 使用方法 # 使用system模块执行linux命令时,如果执行命令没有返回值res值是256 # 如果执行命令有返回值且成功执行,返回值是0 res...返回值是类文件对象,获取结果要采用read()或者readlines() val = os.popen('ls').read() # 执行结果包含在val中 方案二:脚本远程执行命令 Python...该方法参见此前博文:SecureCRT 下 Python 脚本编写 参考文献 Python学习总结 06 paramiko 远程执行命令:https://www.cnblogs.com/wangshuo1...命令(调用linux命令):https://blog.csdn.net/shanliangliuxing/article/details/8811701 (转)python中执行linux命令:https

7.1K20

如何使用 Python 脚本自动备份华为路由器和交换机配置?

本文中,我们将学习如何使用 Python 脚本自动备份华为路由器和交换机配置。我们将了解如何通过 SSH 连接设备、执行备份命令,并将备份保存到本地计算机中。...安装 Paramiko 库:Paramiko 是一个 Python SSH 库,用于建立 SSH 连接和执行命令。...您可以使用以下命令通过 pip 安装 Paramiko: pip install paramiko 确保路由器/交换机支持 SSH:执行备份之前,请确保您华为路由器或交换机已经启用 SSH,并且您具有正确...导入所需脚本开头,导入所需 Python 库: import paramiko import time 创建 SSH 连接 使用 Paramiko 库,创建一个 SSH 连接对象并建立连接...通过使用 Paramiko 库建立 SSH 连接和执行命令,我们能够轻松地实现自动备份功能。 实际应用中,您可以根据需求进一步扩展脚本,例如添加日志记录、定时备份等功能。

70820

如何使用 Python 脚本自动备份华为路由器和交换机配置?

本文中,我们将学习如何使用 Python 脚本自动备份华为路由器和交换机配置。我们将了解如何通过 SSH 连接设备、执行备份命令,并将备份保存到本地计算机中。...安装 Paramiko 库:Paramiko 是一个 Python SSH 库,用于建立 SSH 连接和执行命令。...您可以使用以下命令通过 pip 安装 Paramiko:pip install paramiko确保路由器/交换机支持 SSH:执行备份之前,请确保您华为路由器或交换机已经启用 SSH,并且您具有正确...导入所需脚本开头,导入所需 Python 库:import paramikoimport time创建 SSH 连接使用 Paramiko 库,创建一个 SSH 连接对象并建立连接:ssh =...通过使用 Paramiko 库建立 SSH 连接和执行命令,我们能够轻松地实现自动备份功能。实际应用中,您可以根据需求进一步扩展脚本,例如添加日志记录、定时备份等功能。

99040

Python自动化运维:提高效率、降低风险利器

现代IT运维环境中,自动化运维已经成为不可或缺一部分。Python,作为一种简洁而强大编程语言,为运维人员提供了丰富工具和库,使得自动化运维变得更加高效和可靠。...跨平台兼容性:Python是一种跨平台语言,可在各种操作系统运行。这使得运维人员可以使用相同脚本不同环境中执行任务。...日志分析:使用Python编写脚本进行日志分析,快速定位问题,进行性能优化,提高系统效率。自动化测试:利用Python测试框架,编写自动化测试脚本,确保应用程序不同环境下稳定性和兼容性。...Python自动化运维实例演示以下是一个简单Python脚本示例,用于通过SSH连接到远程服务器执行命令:import paramikodef execute_command(host, username...运维人员可以根据需要扩展该脚本,以执行更复杂任务,例如批量执行命令、上传文件、或者集成到其他自动化工具中。结语Python灵活性和强大生态系统使其成为自动化运维理想选择。

52100

paramiko模块——ssh远程连接服务器执行命令

paramiko模块——ssh远程连接服务器执行命令 通过ssh远程连接服务器并执行相应命令,类似于Xshell ansible用来批量管理远程服务器,底层其实用就是paramiko模块 安装 pip3...install paramiko 使用 paramiko模块即支持用户名密码方式操作服务器 也支持公钥私钥方式操作服务器 并且实际生产中公钥私钥用较多,因为密码是敏感信息 用户名和密码方式执行命令..."""执行命令 用户名和密码方式""" # 创建对象 ssh = paramiko.SSHClient() # 允许链接不在know_hosts文件中主机 ssh.set_missing_host_key_policy.../p/12158061.html # 公钥和私钥(先讲公钥保存到服务器) import paramiko # 读取本地私钥(公钥和私钥需要) private_key = paramiko.RSAKey.from_private_key_file...# print('触发了exit') self.close() """ 上面这个类使用时候 需要先执行open方法 obj = SSHProxy() obj.open() 文件对象

3K10

pythonparamiko模块

paramiko是用python语言写一个模块,遵循SSH2协议,支持以加密和认证方式,进行远程服务器连接。  ...()                      # 创建客户端连接服务端对象 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 允许连接不在...know_hosts文件中主机 ssh.connect(ip,port,username,password)          # 连接远程服务器 2、方法二 import paramiko tus...stdin, stdout, stderr = ssh.exec_command(comm)  # 执行远程服务器脚本             out = stdout.readlines()             ...)         # 将错误信息保存到日志             return 0     def runup(self):                          # 执行上传和远程执行命令操作

53930

基于Python实现前端自动化打包部署

难点分析 要想实现打包,核心需要考虑下面2个问题: python 脚本中如何去执行前端打包命令npm run build(这里以vue项目作为测试) python 脚本中如何连接服务器将打包好问题上传到服务器指定目录中去...关于服务器连接这一块,可以使用python一个第三方模块 paramiko,它实现了SSHv2协议,允许我们直接使用SSH协议对远程服务器执行操作,关于 paramiko 更多知识和用法,请戳这里...') # 实例化一个 sftp 对象,指定连接通道 sftp = paramiko.SFTPClient.from_transport(self....执行linux命令 上面我们也提到了,需要递归遍历static并上传到服务器,那么上传到服务器目录结构肯定需要跟原来 static 保持一致,因此对服务器操作肯定是不可,需要执行linux命令...可以看到python 语法简洁和优雅,这一点也是让我感觉还是挺舒服,对我个人来说,可能后面更多是作为一门工具语言来使用,最大程度去解决实际问题。

76730

python中使用paramiko模块并实现远程连接服务器执行上传下载功能

paramiko模块 paramiko是一个用于做远程控制模块,使用该模块可以对远程服务器进行命令或文件操作,paramiko是用python语言写一个模块,遵循SSH2协议,支持以加密和认证方式...通过ssh链接服务器并执行想要命令,类似于XShell ansible(远程批量管理服务器)底层源码其实就是paramiko模块实现 安装 pip3 install paramiko 使用 前提须知...:paramiko模块即支持用户名密码方式,也支持公钥私钥方式操作服务器 1.用户名密码方式: # 执行命令 import paramiko # 创建链接对象 ssh = paramiko.SSHClient...类封装 假如我想链接服务器执行三条命令,并且上传一个文件内容 大部分都会操作几次就链接几次服务器,效率较低,代码冗余 我们想实现一个类里面包含了执行命令和上传下载文件操作 # 类代码无需掌握 只需要会拷贝使用即可...=self.username, password=self.password) def command(self, cmd): # 正常执行命令连接 至此对象内容就既有执行命令连接又有上传下载链接

1.8K10
领券