python与pexpect实现ssh操作

下载并安装pexpect与ptyprocess模块并结合python2.7实现如下操作

tar -zxvf pexpect-4.0.1.tar.gz

cd pexpect-4.0.1

python setup.py install

tar -zxvf ptyprocess-0.5.tar.gz

cd /ptyprocess-0.5

python setup.py install

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 %[email protected]%s "%s"‘ % (user,ip,cmd))

try:

i = ssh.expect([‘password:‘, ‘continue connecting (yes/no)?‘], timeout=5)

if i == 0 :

ssh.sendline(passwd)

elif i == 1:

ssh.sendline(‘yes‘)

ssh.expect(‘password: ‘)

ssh.sendline(passwd)

except pexpect.EOF:

print "EOF"

except pexpect.TIMEOUT:

print "TIMEOUT"

else:

r = ssh.read()

print r

ssh.close()

if __name__ == ‘__main__‘:

file=open("/mess/filelist",‘r‘)

a = file.read()

file.close()

for host in a.split("\n"):

if host:

user,ip,cmd,passwd = host.split("::")

print "-- %s run:%s --" % (ip, cmd)

ssh_cmd(user,ip,cmd,passwd)

-------------------------------------------------------------------------------------------

/mess/filelist

root::192.168.100.100::ls -l::password

root::192.168.100.100::ps -ef|grep ssh|awk ‘{print $8}‘::password

时间: 2024-08-25 00:45:01

python与pexpect实现ssh操作的相关文章

Python之pexpect详解

一.引子 Pexpect程序主要用于人机对话的模拟,就是那种系统提问,人来回答yes/no,或者账号登陆输入用户名和密码等等的情况.因为这种情况特别多而且繁琐,所以很多语言都有各种自己的实现.最初的第一个 Expect 是由 TCL 语言实现的,所以后来的 Expect 都大致参考了最初的用法和流程,整体来说大致的流程包括: 运行程序 程序要求人的判断和输入 Expect 通过关键字匹配 根据关键字向程序发送符合的字符串 TCL 语言实现的 Expect 功能非常强大,我曾经用它实现了防火墙设备

Python 进行 SSH 操作,实现本地与服务器的链接,进行文件的上传和下载

Python 进行 SSH 操作,实现本地与服务器的链接,进行文件的上传和下载 2018年5月26日 19:03 阅读 375 评论 7 我本地和服务器的连接一直使用的是 Xshell 5,而在与服务器进行文件操作的时候使用的是 Xshell 推荐安装的一个工具 Xftp 5,然而,昨天自己想着从服务器下载备份好的的数据库文件到本地的时候发现这个文件传输工具居然过期不能用了,好气啊!于是没办法(机智如我)只好用 Python 来实现 SSH 的连接,顺便从服务器批量下载一些文件,实现自动化. 项

Python pexpec 解决scp ssh

paswd_key = '.*assword.*'  匹配Password ssh_newkey = '.*(yes/no).*' 匹配 Are you sure you want to continue connecting (yes/no) [python] view plaincopy #!/usr/bin/python2.7 import pexpect import os, sys, getpass def ssh_command(user, host, password, comma

Python的pxssh实现ssh登录之批量“打杂”

一.简单概要 这是我在生产环境用的一个脚本,根据实际运维情况编写,说白了就是人比较懒,不想打杂.哈哈!不明白的同学可以@我哦!,感谢! 二.代码 #!/usr/bin/env python from pexpect import pxssh import os try:     s = pxssh.pxssh()     for i in range(64,65):    #在这个位置定义起始和结束的数字用于IP的主机号     ipaddr = '192.168.1.%s' % i    #生

Python学习——pexpect

Pexpect主要用于ssh远程登录,远程管理等. 简单举例,防止忘记 1 #!/usr/bin/env python 2 import pexpect 3 4 child = pexpect.spawn("ssh [email protected]") 5 fout = open('/root/lwt/mylog.log','a') 6 child.logfile = fout 7 index = child.expect(["[Pp]assword:",pexp

学习python对文件内容的操作

在Python中对文件的操作使用open(filename,"w"),这里filename是文件名称,w指写入操作,会自动覆盖文件中的所有内容,还有r读操作和a追加操作等. 需要注意的是:只能同时进行一项操作,比如写的时候不能读,即使你使用w+参数,也只是读出来空白内容,不过不会报错,所有执行完一项操作使用新的参数才能继续不同的操作,如: f = open(filename,'w')  #以写操作打开文件filename,文件存在则覆盖,不存在则建立 f.write('this is 

Python中列表list常见操作

主要涉及知识点 列表是我们python里面最常见的数据类型,我们主要有以下的操作. 1.索引 2.切片 3.追加 4.删除 5.长度 6.循环 (也称遍历) 7.包含 8.嵌套 例如定义列表: List2=['openstack','python','linux',"docker","zabbix","nginx","linux","linux","123","ww33##&q

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

Python/C++ 对字符串的操作

字符串操作在任何语言中都很常用. 本文列举了一些常见的Python/c++ 对字符串的操作. c++ 的使用了boost libraray,  所涉及到的函数都在  <boost/algorithm/string.hpp> 中定义.   python  c++ 大小写转换 'str'.upper(),  'str'.lower() boost::to_upper('str'), boost::to_upper_copy('str') 字符串包含某个substr str.find(substr)