专栏首页python3python与pexpect实现ssh操

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 %s@%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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python 利用pexpect进行多机

    在安装之前,确认你的机器安装了python,和easy_install.通常python是自动安装的,如果没有安装easy_install,那么wget -q ...

    py3study
  • python,pexpect登录ssh并

    wget http://jaist.dl.sourceforge.net/project/pexpect/pexpect/Release%202.3/pexpe...

    py3study
  • python paramiko模块简介

        paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。

    py3study
  • python 利用pexpect进行多机

    在安装之前,确认你的机器安装了python,和easy_install.通常python是自动安装的,如果没有安装easy_install,那么wget -q ...

    py3study
  • 新机器下git clone代码新思路

    如果不想人工干预,或者到时批量机器,后者docker中使用呢? 我个人之前的做法是引入expect命令了,流程还是没有变动的,只是在出现交互需要的时候,...

    千往
  • ssh password and passphrase

    ssh password and passphrase 1、ssh-keygen -t rsa     采用默认路径,输入passphrase。  2、scp ...

    joshua317
  • 如何让Git记住用户名和密码

    每次提交代码都要输入用户名密码,十分麻烦,教大家怎么让Git记住密码。 Https记住密码 永久记住密码 git config --global credent...

    Java技术栈
  • bash脚本中将密码传递给ssh/scp命令方法详解

    对于大多数最新的操作系统,sshpass软件包在默认软件包存储库中可用。可以使用以下命令在系统上安装它。

    砸漏
  • linux上配置ssh实现免密登录

    当有多台服务器彼此进行通信时,可以通过使用ssh来免去输入密码的步骤。这篇文章将以两台服务器作为范例,演示如何通过ssh进行登录。

    张子阳
  • marathon异常挂掉问题记录 原

    最近marathon跑着跑着就进程没影了,我用的版本还算比较稳定,按理不应该啊,挂掉之前日志如下:

    domain0

扫码关注云+社区

领取腾讯云代金券