Python中有一个pExpect
模块,和TCL中的expect命令差不多,通过expect可以使你的脚本和shell命令之间进行交互。
下面python脚本,使用了expect与ssh和scp交互来完成任务。
#!/usr/bin/python
import pexpect
import sys
import time
import os
now = time.strftime("%m%d%y_%I%M%S%p", time.localtime())
if sys.argv[1] == '-c':
foo = pexpect.spawn('scp -r %s user@address.org:/home/user/' % sys.argv[2])
foo.expect('.ssword:*')
foo.sendline('password')
foo.interact()
elif sys.argv[1] == '-b':
os.mkdir("/home/user/BKUP/foo.com%s" % now, 0700)
foo = pexpect.spawn('scp -r user@foo.org:/RemoteBox/user/%s /LocalBox/user/Bup/foo%s/' % (sys.argv[2], TimeStamp))
foo.expect('.*ssword:')
foo.sendline('Passwd_to_server')
foo.interact()
elif sys.argv[1] == '-p':
foo = pexpect.spawn('ssh foo@bar.com')
foo.expect('.*')
foo.sendline('password')
foo.interact()
else:
foo = pexpect.spawn('ssh default@default.org')
foo.expect('.*ssword:')
foo.sendline('password')
foo.interact()
分享到:
- 2009-04-06 13:52
- 浏览 12971
- 评论(0)
- 论坛回复 / 浏览 (0 / 6116)
- 查看更多
相关推荐
Python的pexpect模块是一个强大的自动化工具,主要用于控制和自动化交互式应用程序,比如telnet、SSH、ftp等。它的工作原理是模拟一个终端会话,能够发送输入、接收输出,并根据预期的输出进行响应,因此得名...
然后,可以编写Python脚本,利用`expect`模块的API来构建交互流程。例如,创建一个`spawn`对象,设置期望的输出模式,然后调用`send`方法发送输入,`expect`方法等待预期的输出。 总的来说,`expect.py-0.116`为...
Pexpect是一个纯Python类似Expect的模块Pexpect使Python成为控制其他应用程序的更好工具。 Pexpect是用于生成子应用程序的纯Python模块。 控制他们; 并响应其输出中的预期模式。 Pexpect的作品就像Don Libes的...
pexpect可以理解为Linux下expect命令的Python封装,可以实现对ssh、ftp、passwd、telnet等命令行的自动交互。 13. paramiko paramiko基于Python实现SSHv2协议,支持认证及密钥方式。它用于远程命令执行、文件传输、...
总结来说,Python通过`subprocess`模块和`expect`工具实现SCP命令的执行,提供了在脚本环境中安全、自动化地传输文件到远程主机的功能。这种方式适用于需要在不暴露密码的情况下执行文件传输的场景,如持续集成流程...
Python的pexpect模块和Shell脚本中的`except`原理解析 Python的pexpect模块是一个强大的工具,用于自动化与交互式应用程序的通信,比如telnet、ftp、passwd、fsck、rlogin、tip、ssh等。它的设计灵感来源于Unix的...
此外,Python还有像requests库来处理HTTP请求,paramiko库来实现SSH连接,以及各种自动化工具如expect模块,可以模拟用户输入,与MSFshell进行交互。 在"msf-autoshell-master"这个压缩包中,我们可能找到以下内容...
下面介绍的代码,是使用python的pexpect模块实现的: 代码 import os import sys import pexpect import datetime #获取昨天的日期 date_yes = (datetime.date.today()-datetime.timedelta(days=1)).strftime('%Y%m...
4. **数据收集和汇总**:Python可以调用子进程执行Shell命令,通过`subprocess`模块收集命令的输出。收集到的数据随后可能被解析、处理,然后存储到Excel文件中,这通常需要用到`pandas`库,它可以方便地创建和操作...
**Pexpect模块详解** 在Python编程环境中,`pexpect`是一个强大的库,它允许程序控制其他应用程序,特别是那些通过标准输入/输出进行交互的程序。这个模块特别适用于自动化那些需要用户交互的任务,如SSH登录、FTP...
编码器墙用于访问用户数据的Python模块,为 安装该模块可在并可以通过pip或easy_install轻松安装: pip install coderwall用法所有功能都可以通过CoderWall类进行访问: >>> from coderwall import CoderWall>>> cwc...
Python模块Expect库是基于Don Libes的开源工具`Expect`的一个Python实现,它为Python程序员提供了一种方便的方式来控制和自动化交互式程序。这个库允许你编写脚本,模拟人类用户与命令行程序、终端仿真器或其他需要...
一、安装 1、安装easy_install工具 ... python ez_setup.py 安装easy_install工具(这个脚本会自动去官网搜索下载并安装) ...[root@OMS python]# python Python 2.7.3rc1 (default, Nov 7 2012, 15:03:
- **directory**:指文件夹,在Python中可以通过`os`模块来操作目录,例如创建、删除或列出目录。 - **file**:文件,Python提供了多种方式来处理文件,包括打开、读取、写入等操作,常用的方法如`open()`。 - **...
描述linux 下python3.8.0及paramiko模块的安装。普通的shell脚本要支持ssh自动登录或者 sftp文件自动上传下载,需要lftp、expect等额外的工具辅助。但操作系统有时候未安装lftp和expect,只安装了python。此时,用...