使用python自动化运维书,其中一个例子是免秘钥scp文件。

源代码:

import pexpect
child = pexpect.spawn('scp  data root@192.168.146.134:~')
child.expect('password:')
child.sendline('118530')

使用脚本执行一直不能传输文件成功,后来通过日志查询,程序没有执行完毕,加上pexcept.EOF(指向缓存区底部,无匹配项)完美解决问题,附修改后代码:

import pexpect
child = pexpect.spawn('scp  data root@192.168.146.134:~')
fout = file('mylog.log','w')  <==记录日志
child.logfile = fout
try:
    child.expect('(yes/no)?')
    child.sendline('yes\r')
    child.expect('password:')
    child.sendline('118530')
except Exception,e:
    print e
child.expect(pexpect.EOF)