资讯专栏INFORMATION COLUMN

使用python-pexpect登录linux系统并发送命令

lijy91 / 1636人阅读

#!/usr/bin/python
# -*- coding: utf-8 -*-
# filename: pexpect_test.py

import pexpect,time,sys
def sendCommt():
    demo = open("result.txt", "ab")
    demo.write("==========Log Tile: demo==========
")
    print user
    child = pexpect.spawn("ssh %s@%s" % (user,ip))
    while True:
        i = child.expect(patterns)
        if i == CONTINUES:
            child.sendline(flag)
        elif i == PASSWD:
            child.sendline(passwd)
        elif i == OPFLAG:
            break
    for cmd in cmds:
        time.sleep(2)
        p = pexpect.spawn(cmd)
        p.logfile = demo
        p.write("=====================
")
        p.expect(pexpect.EOF)
        print cmd
    demo.close()
    child.close()

if __name__ == "__main__":
    user = "demo"
    ip = "x.x.x.x"
    passwd = "1"
    cmds = ["ps","ls","pwd","ifconfig","date"]
    patterns = ["Are you sure you want to continue connecting (yes/no)?","[Pp]assword:","#"]
    CONTINUES,PASSWD,OPFLAG = range(len(patterns))
    flag = "yes"
    group = "1"
    try:
        sendCommt()
    except pexpect.TIMEOUT:  
        print "TIMEOUT" 
    except pexpect.EOF:
        print "EOF"

参考文档:
http://www.ibm.com/developerworks/cn/lin...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/37855.html

相关文章

  • linux基础命令介绍六:网络

    摘要:配置网络接口当命令没有任何参数时显示所有网络接口的信息本例中显示了两个网卡和以及环回口的信息,包括,地址,掩码,地址,传输和接收数据量等等。此命令并未指定,所以默认将捕获所有数据包。 本文将讲述网络相关命令,作者假定读者具备TCP/IP协议栈的基础知识。对于相关命令及其输出只介绍它的基本的使用方法和大概的描述,具体协议将不作详细解释。 如今网络无疑是很重要的,linux系统中提供了丰富...

    newtrek 评论0 收藏0
  • linux文件系统和日志分析

    摘要:通常情况下不需要关注单个的大小,而是需要重点关注的总数,的总字节在格式化的时候就给定了,执行命令即可查看每个硬盘分区对应的总数和已经使用的数量。 inode和block概述一:1、文件数据包括源信息与实际数据文件存储在硬盘上,硬盘最小存储单位是扇区。每个扇区存储512字节block (块):连续的八个扇区组成一...

    waruqi 评论0 收藏0
  • Zookeeper集群搭建和简介(一)

    摘要:集群搭建和简介本文主要涉及一下知识虚拟机安装和基本设置间免密登录搭建环境的介绍虚拟机安装注环境下虚拟机安装环境和使用基本一样这是之前写的一篇虚拟机安装可以参考一下安装完一个虚拟机还不够我们搭建的是集群那么最少来三个吧可以使用镜像重新装也可 Zookeeper集群搭建和简介(-) 本文主要涉及一下知识. 1.linux虚拟机安装和linux基本设置2.linux间免密登录3.linux搭...

    shmily 评论0 收藏0
  • Linux网络管理

    摘要:模式的虚拟机,纯粹就是一个没上过户口的黑户,路由器民政局根本不知道有这么个人,自然也不会主动和它通信。仅主机模式的虚拟机,纯粹是一个彻彻底底的黑奴,不仅没有户口路由器民政局不知道这么号人,还被主机关在小黑屋里,连信件也不准往外发。 前言 只有光头才能变强 回顾前面: 看完这篇Linux基本的操作就会了 Linux用户和权限管理看了你就会用啦 Linux进程管理 这篇主要讲解在Lin...

    mating 评论0 收藏0
  • SSH配置—Linux下实现免密码登录

    摘要:存放远程免密登录的公钥主要通过这个文件记录多台机器的公钥。最后一个参数是我们要免密钥登录的服务器地址。到此,我们的免密钥登录就大功告成。下面给大家说说免密钥登录的原理,有兴趣的可以看看。 showImg(https://segmentfault.com/img/bVbaJiY?w=1222&h=636);首先,假设我们有两台服务器,服务器名称分别是 master 和 slave1,我们...

    Jrain 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<