#!/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"
參考文檔:
http://www.ibm.com/developerworks/cn/lin...python