[python]使用pexpect模块进行批量scp
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#wangxiaofei
#awcloud自动化测试
import time,os
import threading
import sys
threads = []
username = 'root'
passwd = 'www.awcloud.com'
ssh_ip = ['10.11.11.4',
'10.11.11.5',
'10.11.11.6',
'10.11.11.7'
]
try:
import pexpect
except ImportError:
print 'Can not found pexpect module,Now install it......'
os.system('yum install pexpect -y')
time.sleep(3)
check_pexpect=os.popen('rpm -qa | grep pexpect')
if 'pexpect' in check_pexpect.read():
print 'check pexpect module is exists,going on...'
else:
print 'check pexpect module is not exists,exit...'
sys.exit()
else:
import pexpect
def scp_file():
i=0
for i in range(len(ssh_ip)):
try:
scp_command=pexpect.spawn('scp '+scp_filename+' root@'+ssh_ip[i]+':/root/')
expect_result = scp_command.expect([r'assword:',r'yes/no'],timeout=30)
if expect_result == 0:
scp_command.sendline(passwd)
#这句话真的很神奇,如果不加这句话,程序会执行,但是不执行copy,请各路神人解释
scp_command.read()
elif expect_result == 1:
scp_command.sendline('yes')
scp_command.expect('assword:',timeout=30)
scp_command.sendline(passwd)
#don't delete this code,if your do then,the program will be faill.
scp_command.read()
#important
else:
print 'Unknow Result......'
except pexpect.EOF:
print 'Uploading Fail....'
print pexpect.EOF
except pexpect.TIMEOUR:
print 'Uploading time out.....'
time.sleep(2)
if '__name__' == '__main__':
scp_file()
[python]使用pexpect模块进行批量scp的更多相关文章
- python之pexpect模块
最近在看<Python自动化运维技术与最佳实战>这本书,学到了一个运维中用到的模块:pexpect 下面是其定义: Pexpect 是一个用来启动子程序并对其进行自动控制的 Python ...
- python的pexpect模块
Pexpect 是 Don Libes 的 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Python 模块. P ...
- 8.python 系统批量运维管理器之pexpect模块
小插曲 前几节讲了paramiko模块,但是pexpect模块的功能几乎跟paramiko一样,先来分析一下: 1.各自介绍 pexpect是一个通过启动子程序,使用正则表达式对程序输出做出特定响应, ...
- Python中的Pexpect模块的简单使用
Pexpect 是一个用来启动子程序并对其进行自动控制的 Python 模块. Pexpect 可以用来和像 ssh.ftp.passwd.telnet 等命令行程序进行自动交互.以下所有代码都是在K ...
- python的pexpect详解
Pexpect 是一个用来启动子程序并对其进行自动控制的纯 Python 模块. Pexpect 可以用来和像 ssh.ftp.passwd.telnet 等命令行程序进行自动交互.继第一部分< ...
- python的库有多少个?python有多少个模块?
这里列举了大概500个左右的库: ! Chardet字符编码探测器,可以自动检测文本.网页.xml的编码. colorama主要用来给文本添加各种颜色,并且非常简单易用. Prettytable主 ...
- Pexpect模块的安装
Pexpect模块的安装 下载地址:https://pypi.python.org/pypi/pexpect/ 解压后在目录下运行:python ./setup.py install (必须是root ...
- 正则表达式与Python中re模块的使用
正则表达式与Python中re模块的使用 最近做了点爬虫,正则表达式使用的非常多,用Python做的话会用到re模块. 本文总结一下正则表达式与re模块的基础与使用. 另外,给大家介绍一个在线测试正则 ...
- python之常用模块4
pyinotify模块 pip3 install pyinotify pyinotify提供的事件: 事件标志 事件含义 IN_ACCESS 被监控项目或者被监控目录中的文件被访问,比如一个文件被读取 ...
随机推荐
- swift:入门知识之函数与闭包
1.swift中使用关键字func来声明和定义一个函数.调用函数使用它的名字加上小括号中的参数列表. 2.swift使用->方向符号分隔参数的名字和返回值类型 3.swift使用元组(tuple ...
- Diving Into Lync Client Logins
Now that we have a fully functional UC lab it's time to start using the lab to explore various aspec ...
- Ext.grid.plugin.RowExpander的简单用法
有时候,我们在grid里渲染数据时,由于某些字段的内容太长,而grid又不会自动出现滚动条,于是溢出的内容后面就会出现省略号, 导致信息展示不完全.如果,这个信息不太重要,展示不完全也无关紧要.可是, ...
- Linux-0.00运行环境搭建【转】
转自:http://blog.csdn.net/rosetta/article/details/8933240 这里的Linux-0.00由Linus Torvalds写的Linux最初版本,只是打印 ...
- android 更改avd路径
第一种方法,适合还没有建立 AVD 的情况 即:在计算机右击的属性 选择环境变量,然后添加一个用户的环境变量,名字为 "ANDROID_SDK_HOME”,然后把变量值改为你想将" ...
- from 表单提交
html端代码 <body> <div id="dlg" class="easyui-panel" buttons="#dlg-bu ...
- Cocos2d-x 开发手记
1.所有的源文件统一新建到Classes里,否则无法找到源文件,这样也便于跨平台编译 2.绘图坐标系,与opengl采用相同坐标系,左下角为原点 纹理坐标系,以左上角为原点 3.最近有在学习C ...
- core--线程同步
[同步(tóng bù)synchronous;sync;synchronism;synchronization 指两个或两个以上随时间变化的量在变化过程中保持一定的相对关系.]这是百度百科对&quo ...
- Strongly connected 挺简单的tarjan
题意:给你一个连通图,问你最多加多少条边,还能保证该图不是强连通图. 对整个图求强连通分量,然后对图缩点,记录一下缩点之后每隔点包含的原来的点的个数,找出最少的那个点,然后对这个点建成完全图,对另外的 ...
- SPY++的使用
百度百科Spy++ 使用的是VS2010.net自带的功能,可以从开始菜单中打开.