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

#!/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==========\n')

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('=====================\n')

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"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值