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

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

来源 | Python编程时光(ID: Cool-Python使用 Python 写一些脚本的时候,某些情况下,我们需要频繁登陆远程服务去执行一次命令,并返回一些结果。...问题就来了,要输入密码,必须得使用交互式的方法来输入呀, Python 要如何实现呢?...(my_server.ls()) # 可在 sleep 期间,手动登陆服务器,使用 top ,查看当前有多少终端连接 time.sleep(5) # 再次执行这条命令时,登陆终端数将 +1,执行完后...ssh连接,执行两次命令,可实际上,你可以远程机器上,执行 top 命令看到已连接的终端的变化,会先 +1 再 -1,说明两次命令的执行是通过两次连接实现的。...使用 paramiko 带着最后一丝希望,我尝试使用paramiko 这个库,终于 paramiko 这里,找回了本应属于 Python 的那种优雅。

2.9K20

【说站】python Paramiko的SSH用法

python Paramiko的SSH用法 说明 1、将所有设备信息写入文本文档。 简单地使用txt,将登录信息构建成字典。 2、初始化SSH连接和执行命令。...3、分析此需求指定的命令输出结果。 将结果存储文件。 4、增加多线程执行。 提高效率。 5、添加Linux的crontab。 每小时收集一次信息(服务器配置) 实例 #!...import paramiko     def get_device_list(filename):     """文本文件读取设备列表,返回由字典组成的列表。     ...    命令输出示例如下:     # [H3C]dis qos queue-statistics interface outbound | in "^ Drop"     #  Dropped: ...更多Python学习指路:python基础教程 本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

43510
您找到你想要的搜索结果了吗?
是的
没有找到

Python远程控制模块paramiko遇到的问题及解决记录

最近一直开发自动化运维发布平台,底层命令行、文件通道主要基于 paramiko 模块,使用过程遇到各种各样的问题,本文主要用于收集问题及解决记录,以备后续使用。...二、paramiko 远程执行后台脚本“阻塞”问题 我写的远程命令通道上线之后,发现在远程脚本后台再执行另一个脚本,通道会一直等待后台脚本执行完成才会返回,有时甚至会僵死。...②、发起远程执行 本地执行 python test.py,会发现整个脚本不会立即打印 run ok,而是等 30s 之后才打印包括 test.sh 的所有输出信息。...其实原因很简单,因为 stdout(标准输出),输出方式是行缓冲。输出的字符会先存放在缓冲区,等按下回车键时才进行实际的 I/O 操作,导致 paramiko 远程命令产生等待问题。...所以,这里只要将脚本执行的标准输出重定向到错误输出(1>&2),然后 paramiko 就可以使用 stderr 快速读取远程打屏信息了。

6.4K80

Python 远程控制模块 paramiko 问题解决记录

导语 生产环境中使用paramiko作SSH远程控制时,发现会有部分机器报Error reading SSH protocol banner错误,尝试使用ssh命令连接此机器,只是卡半天,最终还是能够正常登陆...最近一直做运维发布平台,底层命令行、文件通道主要基于paramiko模块,使用过程遇到各种各样的问题,本文主要用于收集问题及解决记录,以备后续使用。...②、发起远程执行 本地执行 python test.py,会发现整个脚本不会立即打印run ok,而是等30s之后才打印包括test.sh的所有输出信息。...其实原因很简单,因为bash /tmp/test.sh & 虽然是后台执行,但是依然会产生标准输出,一旦产生标准输出paramiko就会认为命令还未执行完成,且stdout的buffer大于stderr...这里只要将脚本执行的标准输出重定向到错误输出(1>&2),然后paramiko就可以使用stderr快速读取远程打屏信息了。

16.8K20

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

大家好,我是辰哥 相信大家应该都接触过Linux操作系统(Ubuntu、Centos等),那么使用的Linux操作系统需要使用一些远程ssh工具,尤其是公网服务器。...这里用到的Python库是Paramiko 核心知识点(亮点): 1、Python连接远程Linux服务器 2、执行命令并返回结果 3、上传文件到远程Linux服务器 4、远程Linux下载文件 01...Paramiko库 1.安装paramiko开始编写代码之前先安装一下Python连接Linux服务器的库,安装命令如下: #1、安装依赖包 pip install ecdsa pip install...2、执行多条Linux命令 上面的案例只是执行一条Linux命令实际应用往往需要执行2条或者2条以上的Linux,下面演示如何执行多条命令 错误的方式: # 输入linux命令 command1...3、Linux服务器下载文件 辰哥Linux服务器新建了一个文本文件:Python研究者.txt ,并写入内容 ?

2.3K10

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

相信大家应该都接触过Linux操作系统(Ubuntu、Centos等),那么使用的Linux操作系统需要使用一些远程ssh工具,尤其是公网服务器。...这里用到的Python库是Paramiko 核心知识点(亮点): 1、Python连接远程Linux服务器 2、执行命令并返回结果 3、上传文件到远程Linux服务器 4、远程Linux下载文件 01...Paramiko库 1.安装paramiko开始编写代码之前先安装一下Python连接Linux服务器的库,安装命令如下: #1、安装依赖包 pip install ecdsa pip install....png] 2、执行多条Linux命令 上面的案例只是执行一条Linux命令实际应用往往需要执行2条或者2条以上的Linux,下面演示如何执行多条命令 错误的方式: # 输入linux命令 command1...ssh和sftp两大组件,设计的核心知识点(亮点): 1、Python连接远程Linux服务器 2、执行命令并返回结果 3、上传文件到远程Linux服务器 4、远程Linux下载文件

2.1K00

python paramiko

压缩包 地址:https://pypi.python.org/packages/source/p/paramiko/paramiko-1.12.1.tar.gz 解压缩后cmd进入解压缩目录,执行命令...C:\Python27\python setup.sh install 5.确认安装成功 cmd执行C:\Python27\python进入python环境 输入import paramiko无错误提示则表示安装成功...stdout标准输出输出内容比较少时,可以通过直接使用read读取出所有的输出;但在输出内容比较多时,建议通过按行读取进行处理。不过按行读取时,每行结尾会有换行符\n,这样输出的结果很不美观。...函数调用过程需要注意的是,IP、username、passwd都是属于字符串型的,所以需要加引号。后面执行的cmd,如果有多个命令需要操作时,需要通过分号进行分割。...注:本处的目录下所有文件进行下载或上传的示例遇到目录下还有嵌套的目录存在时,会将目录也当做文件进行处理,所以如果想要更加的完美的话,可以通过引入stat模块下的S_ISDIR方法进行处理 paramiko.transport

1.4K10

>>Python:Anaconda3

Anaconda3 1、安装 1、命令操作 安装好之后,可以使用命令conda,可以使用一系列命令参数,conda --help 或 conda -h 、 conda --version 或 conda...其次有些时候在内网环境并不可以使用pip命令来下载依赖包,这就出现了需要手动安装依赖包的情况,由于网络不通,采取手动安装插件库,查找85服务器是否存在插件库或网络下载插件库再传给96服务器。...3)安装依赖库 安装插件的命令使用pip,此命令已经内置anaconda3的依赖插件,具体位置为home/lib/python3.7/site-packages。...avro-python3==1.8.2 4)检查确认依赖库 执行安装新插件后,96服务器插件列表为 295个插件 执行命令conda list -e > [输出插件列表到文件.txt] Q2、sshpass...这个好像不用配置也可以,我官方网站看到18+以下数据库客户端才需要配置环境变量,以及手动配置lib库地址和bin目录,现在我们使用的版本为19,已经自动创建libaio以及其他依赖包) vim /etc

28150

python安装需要安装paramiko

由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux,Solaris,BSD,MacOSX,Windows等,paramiko都可以支持,因此,如果需要使用SSH...unzip paramiko-1.5.4.zip python setup.py install python test.py((paramiko的目录下)) 4.安装完这些之后。...: t.connect(username = “用户名”, password = “口令”, hostkey=”密钥”) 下面给出实际的例子: 3.1windows对linux运行任意命令,并将结果输出...如果linux服务器开放了22端口,windows端,我们可以使用paramiko远程连接到该服务器,并执行任意命令,然后通过print或其它方式得到该结果, 代码如下: #!...() ssh.close() 其中的”你的命令”可以任意linux支持的命令,如一些常用的命令: df:查看磁盘使用情况uptime:显示系统运行时间信息cat:显示某文件内容mv/cp/mkdir/rmdir

1.5K20

python模块paramiko与ssh

centos6,直接借助以下命令可以直接完成安装: # yum install gcc python-crypto python-paramiko python-devel  -y   windows的话.../pypi/paramiko/1.7.4  解压缩,然后进入解压缩目录,DOS下执行 python setup.py build python setup.py install 或者 pip install...stdout标准输出输出内容比较少时,可以通过直接使用read读取出所有的输出;但在输出内容比较多时,建议通过按行读取进行处理。不过按行读取时,每行结尾会有换行符n,这样输出的结果很不美观。...函数调用过程需要注意的是,IP、username、passwd都是属于字符串型的,所以需要加引号。后面执行的cmd,如果有多个命令需要操作时,需要通过分号进行分割。...注:本处的目录下所有文件进行下载或上传的示例遇到目录下还有嵌套的目录存在时,会将目录也当做文件进行处理,所以如果想要更加的完美的话,可以通过引入stat模块下的S_ISDIR方法进行处理 paramiko.transport

1.4K10

学习分享|初入Anaconda3以及实践

1、安装1、命令操作安装好之后,可以使用命令conda,可以使用一系列命令参数,conda --help 或 conda -h 、 conda --version 或conda -V例如,使用conda...其次有些时候在内网环境并不可以使用pip命令来下载依赖包,这就出现了需要手动安装依赖包的情况,由于网络不通,采取手动安装插件库,查找85服务器是否存在插件库或网络下载插件库再传给96服务器。...3)安装依赖库安装插件的命令使用pip,此命令已经内置anaconda3的依赖插件,具体位置为home/lib/python3.7/site-packages。...to avro_python3.egg-info/dependency_links.txtwriting top-level names to avro_python3.egg-info/top_level.txtreading...,96服务器插件列表为295个插件执行命令 conda list -e > [输出插件列表到文件.txt]Q2、sshpass命令没有找到Q2:执行python程序,提示sshpass命令没有找到A2:

27320

Python快速入门教程2:Python 面向对象

Python 内部记录着所有使用的对象各有多少引用。     一个内部跟踪变量,称为一个引用计数器。     ...这种情况下,仅使用引用计数是不够的。Python 的垃圾收集器实际上是一个引用计数器和一个循环垃圾收集器。...imx: re)    括号中使用i, m, 或 x 可选标志     (?-imx: re)    括号使用i, m, 或 x 可选标志     (?#...)    注释....SAX解析器,SAX用事件驱动模型,通过解析XML的过程触发一个个的事件并调用用户定义的回调函数来处理XML文件         python使用sax方式处理xml要先引入xml.sax的...*来执行其他语言的命令,subprocesss是被推荐的方法;     subprocess允许你能创建很多子进程,创建的时候能指定子进程和子进程的输入、输出、错误输出管道,执行后能获取输出结果和执行状态

37410

python paramiko模块简介

由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOS X, Windows等,paramiko都可以支持,因此,如果需要使用... ssh = paramiko.SSHClient()  # 允许连接不在know_hosts文件的主机  ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy...,并将结果输出 如果linux服务器开放了22端口,windows端,我们可以使用paramiko远程连接到该服务器,并执行任意命令,然后通过 print或其它方式得到该结果, 代码如下  #coding...()   ssh.close() 其中的”你的命令”可以任意linux支持的命令 4.2 widnows端下载linux服务器上的文件  coding:utf8     import paramiko.../tmp/system.log’  sftp.put(localpath,remotepath)  t.close() 4.4 Linux上安装paramiko模块 安装scrapy这个应用遇到的问题

99710

ChatGPT 教我写一个基于python程序开发的网络设备巡检功能

我觉得以后这随便都可以直接ChatGPT上提要求然后搬运过来就是了,都可不用写了 方法一 编写一个自动化网络设巡检python程序 为了编写一个自动化网络设备巡检的Python程序,你需要遵循以下步骤...这将检查设备的各种参数,如 CPU 使用率、内存使用率、接口状态等等。这可能需要使用 Netmiko 或其他类似的模块来执行命令和获取输出。...这将使用 Python 的内置 smtplib 库发送邮件。...print(stdout.read().decode()) # 关闭 SSH 连接 client.close() 上述代码使用 Paramiko 库连接到设备并执行命令。...实际使用,可以根据需要添加更多的命令和设备信息。此外,还可以使用其他 Python 库来解析命令输出并提取有用的信息,例如使用正则表达式或 Beautiful Soup 库来解析 HTML 输出

6210

PyQt5+matplotlib-Linux设备性能监控工具

无奈接受任务 — 进入新公司差不多到半个月多了,刚好碰到稳定性相关测试-需要24H监控设备的CPU和内存使用率,来确认CPU使用是否过高(不超过80%),是否有内存泄漏的情况发生(稳定)。...之前测试的人好像直接用Linux-top命令,然后筛选出现相关信息写到文件,自己检查整个趋势?带我的老哥来一句:你是会Python是吧?要不你看看能不能写个工具?那我只能说好吧!...) — 第一步:连接Linux且执行Linux命令 import paramiko #连接Linux def get_ssh_client(hostName,port,userName,password...): stdin, stdout, stderr = client.exec_command(command) #执行Linux lines=stdout.readlines()#读取输出...我用的是PyQt5里面的定时QTimer,PyQt5.QtCore里面。用法也是很简单。

68010

《Ansible自动化运维:技术与最佳实践》第二章读书笔记

使用的操作系统为 Centos 7.0,自带 Python 2.7.5。...(基于OpenSSH)‘ssh’,如果不支持将使用paramiko’,其他传输选项‘local’,‘chroot’,’jail’等等 #remote_port = 22 #连接被管节点的管理端口...webservers -m ping 命令后加 -v 或 -vvv 可得到详细的输出结果 结果如下 192.168.46.128 | SUCCESS => { "ansible_facts...": "/usr/bin/python" }, "changed": false, "ping": "pong" } 在被管节点上批量执行命令 home 目录下创建资源清单文件...ansible-doc -s 获得工具下模块支持的动作 总结 通过 CentOS 上以不同的方式安装 Ansible 以及对 Ansible 进行参数配置,并通过 Ansible 在被管节点上执行命令

1.1K40

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

paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接...由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOS X, Windows等,paramiko都可以支持,因此,如果需要使用...对于shell 命令,可以直接使用管道,或者将标准输出重定向到文件的方法取得执行结果。 2....使用 subprocess 通过Python可以想到使用 os.popen,os.system,commands,subprocess 等一些命令执行库来间接获取系统信息 。...") # 使用这个连接执行命令 ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command("ls -l") # 获取输出 print(ssh_stdout.read

3.5K20

python学习-paramiko简单使

paramiko是基于python实现的ssh2远程安全连接,支持认证及密钥方式。可以实现远程命令执行,文件传输、中间ssh代理等功能。...True gss_host=None banner_timeout=None exec_command():用于远程执行命令,该命令的输入与输出流为标准输入、标出输出、标准错误输出 参数: command...mkdir() 服务器上创建目录 remove() 服务器上删除目录 rename() 服务器上重命名目录 stat() 查看服务器文件状态 listdir() 列出服务器目录下的文件 使用.../usr/bin/env python #coding=utf-8  import paramiko      hostname='172.31.101.61'  username='root'  password...exec_command()  print stdout.read()    #打印命令执行结果,得到python列表形式,可以用stdout.readlinses()  ssh.close()

52110
领券