#!/usr/bin/env python
import sys,os
import pxssh
import getpass
import pexpect
#scp
def scpcp(hostname,username,password,source,target):
print 'scp -r '+source+' '+username+'@'+hostname+':'+target
ssh_newkey = "Are you sure you want to continue connecting"
p = pexpect.spawn ('scp -r '+source+' '+username+'@'+hostname+':'+target)
i = p.expect([ssh_newkey, 'password:', pexpect.EOF])
if i ==0:
print "I say yes"
p.sendline('yes')
if i ==1:
print "i give password"
p.sendline(password)
print 'output'
p.expect(pexpect.EOF,timeout=None)
elif i==2:
print "I either got key or connection timeout"
pass
print p.before
def sshlogin(hostname,username,password,cmd):
try:
s = pxssh.pxssh()
s.login (hostname, username, password,login_timeout=200)
s.sendline (cmd) # run a command
s.prompt() # match the prompt
print s.before # print everything before the propt.
s.logout()
except pxssh.ExceptionPxssh, e:
print "pxssh failed on login."
print str(e)
def main():
cmdlen=len(sys.argv)
if len(sys.argv)>=5:
if sys.argv[1]==('scp'):
scpcp(sys.argv[2],sys.argv[3],sys.argv[4],sys.argv[5],sys.argv[6])
else:
hostname=sys.argv[1]
username=sys.argv[2]
password=sys.argv[3]
shellcommand=''
for i in range(4,cmdlen):
shellcommand =shellcommand+ sys.argv[i]+' '
print shellcommand
sshlogin(hostname,username,password,shellcommand)
else:
pass
if __name__ == "__main__":
main()
http://www.ibm.com/developerworks/cn/linux/l-cn-pexpect1/#4.Pxssh 类的使用:|outline