关于pexpect的使用

使用python自动化运维书,其中一个例子是免秘钥scp文件。

源代码:

import pexpect
child = pexpect.spawn(‘scp  data [email protected]:~‘)
child.expect(‘password:‘)
child.sendline(‘118530‘)

使用脚本执行一直不能传输文件成功,后来通过日志查询,程序没有执行完毕,加上pexcept.EOF(指向缓存区底部,无匹配项)完美解决问题,附修改后代码:

import pexpect
child = pexpect.spawn(‘scp  data [email protected]:~‘)
fout = file(‘mylog.log‘,‘w‘)  <==记录日志
child.logfile = fout
try:
    child.expect(‘(yes/no)?‘)
    child.sendline(‘yes\r‘)
    child.expect(‘password:‘)
    child.sendline(‘118530‘)
except Exception,e:
    print e
child.expect(pexpect.EOF)
时间: 2024-10-01 06:33:11

关于pexpect的使用的相关文章

弃坑pexpect,入坑paramiko

弃坑pexpect,入坑paramiko 上文书说到,ssh库pexpect的使用,简直就是个"月亮公主"--满眼全是坑.勉强把程序写好了,跑起来的时候发现了一个新坑,让我不可抗拒的把它弃掉了--经常莫名其妙的连不上服务器!开线程连接14台服务器,总有1到3台连不上,还查不到原因.这还了得!一怒之下把写好的pexpect封装库删掉了,用paramiko重新写起.其实这个库也是有一些坑的,这个放在后面说.先介绍一下这个库的用法. 安装方法:没有什么新鲜的 pip install para

Python 安装pexpect模块

安装Python 下载pexpect模块:https://pypi.python.org/pypi/pexpect/#downloads 解压后在目录下运行:python ./setup.py install (必须是root权限) 如果没有使用root权限,你只需要把lib的路径放入sys.path,这样便可以使用pexpect import syssys.path.append('pexpect-4.2.1/build/lib') 确认是否安装成功 >>>import pexpect

pexpect 初坑

通过一个很坑的任务,最近认识了一个新坑: pexpect .其实基本的用法并不难,不过,我还是跟以前一样,把几个基本函数的坑蹚了个遍.有感而发,记录一下. 首先简单的介绍一下这个坑,哦不对,这个库.这是一个 linux 下做SSH 远程登录和操作的库.我们平时用 windows 连接linux 的话,一定很熟悉 SecureCRT ,putty 这样的工具,这些工具就是通过 SSH 做远程连接的.pexpect正是这样一个库,如果有兴趣的话,使用这个库就可以做出一个 SSH 连接的工具. 然后介

pexpect学习阶段

网上关于pexpect的介绍基本都类似于这样http://blog.csdn.net/sdustliyang/article/details/23373485,但是并没有关于下述问题的解释 问题:可以ssh到主机,但是后面执行的命令无法生效 代码如下: 1 import pexpect 2 import sys 3 4 child = pexpect.spawn('ssh [email protected]') 5 fout = file('mylog.txt','w') 6 child.log

Python的Pexpect的简单使用

Pexpect 是一个用来启动子程序并对其进行自动控制的纯 Python 模块. Pexpect 可以用来和像 ssh.ftp.passwd.telnet 等命令行程序进行自动交互.本文主要是针对ssh远程登录,然后执行简单的新建文件夹与拷贝任务 Pexpect 的安装: 下载:https://pypi.python.org/pypi/pexpect/ 解压后在目录下运行:python setup.py install Pexpect 的简单使用: from pexpect import * u

Python SSH登陆--pexpect,pxssh

from pexpect import pxssh host = '192.168.80.139'user = 'allen'password = 'allen'command = 'df -h' def connect(hostname, username, password):    try:        s = pxssh.pxssh()        s.login(hostname, username, password)        return s        #print

第十八章 Python批量管理主机(paramiko、fabric与pexpect)

本章节主要讲解运维工程师比较感兴趣的知识,那就是运维批量管理,在Python下有paramiko.fabric和pexpect这三个模块可帮助运维实现自动化部署.批量执行命令.文件传输等常规任务,接下来一起看看它们的使用方法吧! 18.1 paramiko paramiko模块是基于Python实现的SSH远程安全连接,用于SSH远程执行命令.文件传输等功能. 默认Python没有,需要手动安装:pip install paramiko 如安装失败,可以尝试yum安装:yum install p

python linux交互模块(paramiko、fabric与pexpect)

转载自: http://blog.csdn.net/alibert/article/details/54375276 paramiko paramiko模块是基于Python实现的SSH远程安全连接,用于SSH远程执行命令.文件传输等功能. 默认python没有,需要手动安装:pip install paramiko 如安装失败,可以尝试yum安装:yum install python-paramiko 18.1.1 SSH密码认证远程执行命令 1 2 3 4 5 6 7 8 9 10 11 1

系统批量运维管理器pexpect的使用

# pip install pexpect 或 # easy_install pexpect 1 #!/usr/bin/env python 2 import pexpect 3 child = pexpect.spawn('/usr/bin/scp /root/pexpect/haha 172.16.65.201:/tmp/') 4 child.expect('password:') 5 child.sendline('rootroot') 6 child.expect(pexpect.EOF