Tente assim:
child.expect("ada@ada's password:")
child.sendline("mypassword")
child.expect(pexpect.EOF, timeout=10)
Esse link pode ajudar você:
Estou tentando fazer o SCP e copiar alguns arquivos do servidor remoto. Desde que eu não tenho permissão de root eu uso sudo com o comando quando ele pede senha eu estou enviando-o usando pexpect mas não sou capaz de fazê-lo. Eu fui atingido em algum lugar.
Aqui está o meu código:
import pexpect
def doScp(user,password,host,remotepath,localpath,files):
print files
child = pexpect.spawn('sudo scp -C %s:%s%s %s' % (host, remotepath, files, localpath))
print 'scp -C %s:%s%s %s' % (host, remotepath, files, localpath)
i = child.expect(['assword:', r"yes/no"], timeout=30)
if i == 0:
child.sendline(password)
elif i == 1:
child.sendline("yes")
child.expect("assword:", timeout=30)
child.sendline(password)
data = child.read()
print data
child.close()
user = "xxxxx"
host = "yyyy"
password = "zzzzzz"
remotepath = "/opt/logs/"
localpath = "/opt/Performance_Logs/SRNG/"
files = "receiver.log"
doScp(user,password,host,remotepath,localpath,files)
O erro que estou recebendo:
File "/usr/lib/python2.6/site-packages/pexpect.py", line 1325, in expect_list return self.expect_loop(searcher_re(pattern_list), timeout, searchwindowsize) File "/usr/lib/python2.6/site-packages/pexpect.py", line 1409, in expect_loop raise TIMEOUT (str(e) + '\n' + str(self))
Tente assim:
child.expect("ada@ada's password:")
child.sendline("mypassword")
child.expect(pexpect.EOF, timeout=10)
Esse link pode ajudar você:
Tags scp