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

如何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模块下载

    Python中的pexpect模块下载Python中的pexpect模块下载

    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 实现输密码 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 ssh 远程登录服务器的方法

    使用了python中的pexpect模块,在测试代码之前,可输入python进入交互界面,输入help(‘pexpect’),查询是否本地含有pexpect模块。 如果没有,linux系统输入 easy_install pexpect便可自动安装。 测试代码,连接...

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

    Pexpect 是 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Python 模块。 Pexpect 的使用范围很广,可以用来实现与 ssh、ftp 、telnet 等...

    SSH-Interaction:使用paramiko和pexpect进行SSH交互

    SSH交互 使用paramiko和pexpect进行SSH交互

    Python Pexpect库的简单使用方法

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

    pexpect-2.3.tar.gz

    Pexpect makes Python a better tool for controlling other applications. Pexpect is a pure Python module for spawning child applications; controlling them; and responding to expected patterns in their ...

    python pexpect实践

    python pexpect实践

    pexpect, 在伪终端中,用于控制交互程序的python 模块.zip

    pexpect, 在伪终端中,用于控制交互程序的python 模块 Pexpect是一个纯 python 期望模块Pexpect使 python 成为控制其他应用程序的更好工具。Pexpect是用于生成子应用程序。控制它们并响应它的输出中预期模式的纯 ...

    对Python Pexpect 模块的使用说明详解

    背景介绍 ...因为这种情况特别多而且繁琐,所以很多语言都有各种自己的实现。最初的第一个 Expect 是由 TCL 语言实现的,所以后来的 ...也因为它使用方便、范围广,几乎所有脚本语言都实现了各种各样的类似与Expect的

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

    现在有个任务是在这些电脑上执行某些命令,者说进行某些操作,比如安装某些软件,拷贝某些文件,批量关机等。如果一台一台得手工去操作,费时又费力,如果要进行多个操作就更麻烦啦。 或许你会想到网络同传,网络同...

Global site tag (gtag.js) - Google Analytics