Python 远程批量修改密码脚本 #tar -zxvf pexpect-3.0.tar.gz #cd pexpect-3.0 #python setup.py install #!...: print >>sys.stderr, ip+' timeout' except pexpect.EOF: print >>sys.stderr, ip+' ...' (1)spawn类 class pexpect.spawn(command,args=[],timeout=30,maxread=2000,searchwidowsize=None.../usr/bin/python# encoding=utf-8# Filename: pexpect_test.pyimport pexpectdef sshCmd(ip, passwd, cmd):... ret = -1 ssh = pexpect.spawn('ssh root@%s "%s"' % (ip, cmd)) try: i = ssh.expect([
Pexpect 模块 两个主要接口 pexpect.run('ls -la') child = pexpect.spawn('scp foo myname@host.example.com:.') ...('/bin/bash', ['-c', shell_cmd]) child.expect(pexpect.EOF) #等待断开 将log日志重定向到某个文件或者标准输出...before代表匹配前的内容,即ls的执行结果,after代表匹配之后的内容 child.before child.buffer try: index = pexpect...()一下就ok啦 sendeof(),只能用在开头处,另外对于某些平台是发送ctrl+d命令,所以还是不是很好用 参考文献: http://www.ibm.com/developerworks/cn/linux.../l-cn-pexpect1/ http://www.ibm.com/developerworks/cn/linux/l-cn-pexpect2/
另一种安装方法如下: wget http://pexpect.sourceforge.net/pexpect-2.3.tar.gz tar xzf pexpect-2.3.tar.gz cd pexpect.../setup.py install pexpect 模块的使用如下: >>> pexpect. pexpect.EOF( pexpect....__path__ pexpect.run( pexpect.ExceptionPexpect( pexpect....__reduce__( pexpect.runu( pexpect.PY3 pexpect....__loader__ pexpect.os pexpect.tty pexpect.
pexpect是一个用来启动子程序并对其进行自动控制的 Python 模块。...pexpect 可以用来和像 ssh、passwd、telnet 、rsync等命令行程序进行自动交互 下面是我用pexpect写的一个脚本,是用来执行远程主机命令,脚本是自动交互输入远程主机的密码的...import pexpect import os,sys import time #远程主机地址 Dir = "/usr/local/tomcat48080/webapps/WebApi_Develop...直接发送yes并继续下一个循环 ssh.sendline('yes') except pexpect.EOF: ssh.close... else: ssh.expect(pexpect.EOF) ssh.close() print
1、 安装python的Pexpect模块 wget http://jaist.dl.sourceforge.net/project/pexpect/pexpect/Release%202.3/pexpect...-2.3.tar.gz tar xzf pexpect-2.3.tar.gz cd pexpect-2.3 python setup.py install 2、 执行脚本 可以登录到机器执行一些简单的命令等.../usr/bin/env python # -*- coding: utf-8 -*- import pexpect from getpass import getpass passwd...= getpass() def ssh_cmd(user,ip, cmd): ssh = pexpect.spawn('ssh %s@%s "%s"' % (user,ip,cmd...: print "EOF" except pexpect.TIMEOUT: print "TIMEOUT"
image.png image.png
如果没有安装easy_install,那么wget -q http://peak.telecommunity.com/dist/ez_setup.py 获取一下 python ez_setup.py pexpect...是python一个模块,可以通过:easy_install pexpect 来安装。...这里主要是用pexpect执行ssh,查看远程uptime和df -h看硬盘状况。...#ssh_cmd.py #coding:utf-8 import pexpect def ssh_cmd(ip, user, passwd, cmd): ssh = pexpect.spawn('ssh...if i == 0 : ssh.sendline(passwd) elif i == 1: ssh.sendline('yes') except pexpect.EOF: ssh.close() else
/usr/local/python3/bin/python3 import pexpect def exec_command(user,host,password): new_connection =...'Are you sure you want to continue connecting' conn = 'ssh '+user+'@'+host child = pexpect.spawn(conn...) #启动ssh命令 index = child.expect([pexpect.TIMEOUT,new_connection,'password:']) #等待程序输出,匹配字符串进行后续操作 if...1: #匹配到Are you sure you want to continue connecting child.sendline('yes') index = child.expect([pexpect.TIMEOUT
下载并安装pexpect与ptyprocess模块并结合python2.7实现如下操作 tar -zxvf pexpect-4.0.1.tar.gz cd pexpect-4.0.1 python setup.py.../usr/bin/env python # -*- coding: utf-8 -*- import pexpect #from getpass import getpass #passwd =...getpass() def ssh_cmd(user,ip, cmd,passwd): ssh = pexpect.spawn('ssh %s@%s "%s"' % (user,ip,... ssh.expect('password: ') ssh.sendline(passwd) except pexpect.EOF...: print "EOF" except pexpect.TIMEOUT: print "TIMEOUT"
Pexpect 是 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Python 模块。...Pexpect 的使用范围很广,可以用来实现与 ssh、ftp 、telnet 等程序的自动交互;可以用来自动复制软件安装包并在不同机器自动安装;还可以用来实现软件测试中与命令行交互的自动化。...整体来说大致的流程包括: 运行程序 程序要求人的判断和输入 Expect 通过关键字匹配 根据关键字向程序发送符合的字符 基本使用流程 pexpect 的使用说来说去,就是围绕3个关键命令做操作: 首先用...掌握这个概念之后 pexpect 的使用就很容易了。...注意: spawn() ,或者说 pexpect 并不会转译任何特殊字符 比如 | * 字符在Linux的shell中有特殊含义,但是在 pexpect 中不会转译它们,如果在 linux 系统中想使用这些符号的正确含义就必须加上
Pexpect是一个纯Python模块,用于生成子应用程序;控制他们;并对输出中的预期模式作出响应。Pexpect的工作原理类似于Don Libes的Expect。...Pexpect允许脚本生成一个子应用程序,并像键入命令一样控制它。Pexpect可用于自动化交互应用程序,如ssh、ftp、passwd、telnet等。...pexpect与SSH交互 #coding=utf-8 import pexpect from threading import * def SSHConnect(Host,User,Password...(connStr,timeout=1) # 期望有ssh_newkey字符、提示输入密码的字符出现,否则超时 ret = child.expect([pexpect.TIMEOUT...登录执行命令 #-*- coding:UTF-8 -*- import pexpect def ssh(user,host,password,port,command): child = pexpect.spawn
文章以word形式发至邮箱: minwei.wang@dbappsecurity.com.cn 有偿投稿,记得留下你的姓名和联系方式哦~ 先来介绍一下pexpect,pexpect可以理解为...Linux下expect(不知道的可以百度下linux expect)的python封装。...Pexpect的安装 可以使用pip安装 pip install pexpect 也可以使用easy_install easy_install pexpect 本菜鸡在win7下使用pip安装的时候抛出好多异常...下载地址: https://pypi.python.org/pypi/pexpect/ 适用于py2和py3 下载完成之后找到对应路径直接使用pip安装即可 后来遇到个坑,发现windows下不支持pexpect...,只好改换linux 一个简单的ftp登录脚本 #coding:utf-8 import pexpect ftp = pexpect.spawn('ftp 192.168.112.129') #spawn
Pexpect 是一个自动控制的 Python 模块,可以用来ssh、ftp、passwd、telnet 等命令行进行自动交互。 官方网站是 http://www.noah.org/。...例如我们可以用它来写python脚本,实现批量对一系列(大量的、配置相同的)的linux服务器进行操作。...如果你对expect还不太了解,那么可以参考Linux expect 介绍与用法 一、pexpect 安装方式 以root用户依次执行如下命令: wget http://pexpect.sourceforge.net.../pexpect-2.3.tar.gz tar xzf pexpect-2.3.tar.gz cd pexpect-2.3 sudo python ..../setup.py install 二、简单测试 编写一个简单的脚本pexpect_test.py测试一下 #!
想当年,我们在Analog Devices(ADI)的Linux Team做Blackfin Linux的时候,就是用的expect语言做自动测试的。...pexcept(https://github.com/pexpect/pexpect)号称自己: ?...Pexpect is in the spirit of Don Libes' Expect, but Pexpect is pure Python....上述ssh同样的功能,如果换支持pexpect的python执行,代码如下: ?...expect:pip install pexpect expect语言:apt install expectpython expect:pip install pexpect
然而,这个库原生主要服务于Unix-like系统(如Linux和macOS),在Windows上可能并不完美。幸好,有一个备选方案——WinPexpect,它解决了这个平台差异性问题。...什么是Pexpect? Pexpect是一个Python库,用于自动化与命令行交互的任务。它能轻松处理像SSH、FTP、密码sudo命令、数据库查询等任务。...下面是一个简单的使用示例: import pexpect child = pexpect.spawn('ssh username@domain.com') child.expect('Password...其API与Pexpect非常相似,因此如果你已经熟悉Pexpect,使用WinPexpect将会非常简单。...主要差异 平台支持 Pexpect:Unix-like系统(Linux、macOS等) WinPexpect:Windows 依赖 Pexpect:依赖pty(pseudoterminal)支持,Windows
使用 pexpect 模块可以在 Python 中执行命令并检查其输出。你可以使用 ssh 命令连接到远程服务器,并执行 ls 命令检查文件是否存在。...用户已经使用 pexpect 库编写了大部分代码,但需要捕获文件存在与否的值,以便断言文件是否存在。...方案 3:使用 pexpect 库在 pexpect 库的 expect() 方法中,使用 \r\n 换行符来确保命令执行的一致性。...else: print("File does not exist.")方案 3 的代码示例:import pexpectdef check_file_exists(host, username..., password, file_path): ssh = pexpect.spawn('ssh %s@%s' % (username, host)) ssh.expect('password
telnet很好用,但是总是有人喜欢更强大更好用的程序,于是就有了pexpect,pexpect 是 Don Libes 的 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应...看了写资料,也用pexpect写了一个小程序,实现刚才同样的功能: #!...(['login',pexpect.EOF,pexpect.TIMEOUT],timeout=1) if index == 0: child.sendline(userName) index...http://docs.python.org/library/telnetlib.html IBM developerWorks: http://www.ibm.com/developerworks/cn/linux.../l-cn-pexpect1/ http://www.ibm.com/developerworks/cn/linux/l-cn-pexpect2/
PYTHON学习之SSH登录(以LINUX为例); PYTHON中有两个模块可以实现SSH登录并下发命令行; PEXPECT 1.安装第三方模块; easy_install...pexpect 2.PEXPECT 实现SSH登录及下发命令; ?
/usr/bin/python # -*- coding: utf-8 -*- '''https://www.ibm.com/developerworks/cn/linux/l-cn-pexpect2.../index.html''' import pexpect import types username = "root" ip = "192.168.***.***" password = "**...**" pex = pexpect.spawn('ssh %s@%s' % (username, ip)) def _check(pattern, timeout=120): i = pex.expect...(cmd) child.expect(pexpect.EOF) return child.before if __name__ == '__main__': checklist1...i)Y/N", 'Y'], [pexpect.EOF, False], [pexpect.TIMEOUT, False],
二、准备工作 1.python的pexpect模块安装 由于会使用到ansible的expect模块,该模块运行时需要调用python的pexpect模块,先安装python的pexpect模块 [root.../setup.py install" - name: Unarchive pexpect unarchive: src: /tmp/splunk/pexpect-4.8.0.tar.gz...(Red Hat 4.8.5-36)] on linux2 Type "help", "copyright", "credits" or "license" for more information....>>> import pexpect >>> >>> exit() ?...Unarchive client install file unarchive: src: /tmp/splunk/splunkforwarder-8.0.5-a1a6394cc5ae-Linux-x86
领取专属 10元无门槛券
手把手带您无忧上云