`
qindongliang1922
  • 浏览: 2188447 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117659
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:126068
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:60013
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71398
社区版块
存档分类
最新评论

如何Python3.4使用pexpect来实现SSH登陆

阅读更多


Pexpect 是 Don Libes 的 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Python 模块。 Pexpect 的使用范围很广,可以用来实现与 ssh、ftp 、telnet 等程序的自动交互;可以用来自动复制软件安装包并在不同机器自动安装;还可以用来实现软件测试中与命令行交互的自动化。



在shell里面用过pexpect的人,相信都会很熟悉这种工具,pexpect是expect的python的一个实现,利用python来操作某些交互式的自动化任务是非常方便的。



如何在linux下安装?
1,使用wget https://pypi.python.org/pypi?:action=show_md5&digest=0de72541d3f1374b795472fed841dce8 下载

2,使用tar -zxvf pexpect-3.3.tar.gz解压

3,使用python setup.py install进行安装




ok,上面的步骤,执行完成之后,我们就可以来写个demo测试一下了,另外注意兼容问题,散仙的python是3.4,所以要下载支持python3.4的pexpect,如果你的python版本是2.x那么就要下载2.x的pexpect来使用。




下面是散仙模拟SSH登陆一台机器并打印磁盘情况,然后退出的例子:
#!/usr/local/python3.4/bin/python3.4



import pexpect

ip="192.168.46.22"
name="root"
pwd="abc"


#发送命令执行交互
child=pexpect.spawn('ssh  %s@%s' % ("root",ip)  )
#
child.expect ('password:')

child.sendline(pwd)

child.expect('$')

child.sendline('df -h')

#发送命令
child.sendline("exit")


child.interact()

#关闭pexpect
child.close()


执行结果如下:
Last login: Wed Oct 22 18:35:08 2014 from 192.168.46.31
exit[root@ganglia ~]# df -h
Filesystem                      Size  Used Avail Use% Mounted on
/dev/mapper/vg_ganglia-lv_root   30G  3.6G   25G  13% /
tmpfs                           495M     0  495M   0% /dev/shm
/dev/sda1                       485M   32M  428M   7% /boot
[root@ganglia ~]# exit
logout
Connection to 192.168.46.22 closed.
[root@master 20141022]# 



本文只是一个简单的例子,可能觉得没有必要使用python来完成,但当系统管理规模一旦大起来的话,使用python来自动化管理是非常轻松的一件事。





0
1
分享到:
评论

相关推荐

    python2-pexpect-4.6-1.el7.noarch.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    Python库 | pexpect-4.4.0-py2.py3-none-any.whl

    资源分类:Python库 所属语言:Python 资源全名:pexpect-4.4.0-py2.py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python:pexpect模块下载

    Python的pexpect模块是一个强大的自动化工具,主要用于控制和自动化交互式应用程序,比如telnet、SSH、ftp等。它的工作原理是模拟一个终端会话,能够发送输入、接收输出,并根据预期的输出进行响应,因此得名...

    python pexpect ssh 远程登录服务器的方法

    在本文中,我们将深入探讨如何使用pexpect模块通过SSH进行远程登录,并通过两个示例来展示其基本用法。 首先,让我们了解pexpect模块。pexpect允许Python程序启动并控制其他应用程序,尤其是那些需要用户输入的程序...

    python Pexpect 实现输密码 scp 拷贝的方法

    本想直接在bash文件中使用Pexpect 来实现自动输入密码,并scp拷贝文件,但是权限的限制导致不能安装使用Pexpect 。 最后考虑使用python实现。 环境: python2.7 centos from pexpect import * import os cwd = os....

    python3-pexpect-4.3.1-3.el8.noarch.rpm

    官方离线安装包,亲测可用

    使用python的pexpect模块,实现远程免密登录的示例

    下面介绍的代码,是使用python的pexpect模块实现的: 代码 import os import sys import pexpect import datetime #获取昨天的日期 date_yes = (datetime.date.today()-datetime.timedelta(days=1)).strftime('%Y%m...

    Python-pexpect在一个伪终端中控制交互程序就像GNUexpect一样

    以下是一个简单的pexpect使用示例,演示如何使用pexpect自动登录SSH: ```python import pexpect child = pexpect.spawn('ssh user@example.com') child.expect('password:') child.sendline('mysecretpassword') ...

    Python实现ssh批量登录并执行命令

    本文将介绍如何使用Python的库来实现SSH的批量登录和命令执行。 首先,Python中的`pexpect`库允许我们自动化SSH登录过程中的交互步骤。`pexpect`通过模拟子进程的输入和输出来处理命令行交互。以下是一个使用`...

    python之pexpect实现自动交互的例子

    Python中的Pexpect模块是一个强大的工具,它允许程序员自动化与命令行接口交互的过程,尤其是涉及到SSH、FTP、TELNET等协议的场景。Pexpect基于Expect语言的概念,为Python开发者提供了便捷的方式来控制子进程,通过...

    使用ssh、scp不需要密码

    如果将公钥复制到要访问的机器上,并保存到 ~/.ssh/authorized_keys 文件中,那么可以不需要密码使用 ssh 和 scp 进行登陆和文件传输。 使用 Expect 实现密钥对生成 Expect 是一个自动化工具,可以用于自动生成...

    Python Pexpect库的简单使用方法

    Pexpect使用在自动交互的应用,例如SSH、SFTP、PASSWD、TELNET。它可以被应用在使用自动设置脚本为不同的服务器自动地重复的安装软件包。也可以被应用在自动的软件测试。 Pexpect的主要特点是需要Python的基本库pty...

    Python库 | mst-ssh-0.1.2.tar.gz

    解压后,开发者可以查看README文件以了解如何安装和使用这个库,查找example或test文件来理解其工作原理,查看src或lib目录下的Python文件(如mst_ssh.py)来研究库的核心功能。 Python SSH库通常提供以下功能: 1....

    pexpect模块

    `pexpect`通过模拟键盘输入来与这些程序交互,从而实现自动化流程。 ### Pexpect的核心概念 1. **子进程**:`pexpect`的主要功能是启动并控制子进程。它可以启动一个新的进程,然后等待该进程输出特定的字符串或...

    python 实现自动远程登陆scp文件实例代码.pdf

    这个脚本虽然使用了Tcl的`expect`,但可以通过Python的`pexpect`库来实现类似的功能。`pexpect`是Python的一个库,它允许我们编写能够控制其他应用程序的脚本,尤其是那些需要用户交互的应用,比如SSH、SCP等。 在...

Global site tag (gtag.js) - Google Analytics