
Estoy intentando realizar SCP y copiar algunos archivos del servidor remoto. Como no tengo permiso de root, uso sudo con el comando cuando solicita la contraseña. La envío usando pexpect pero no puedo hacerlo. Me golpearon en alguna parte.
Aquí está mi 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)
El error que recibo:
Archivo "/usr/lib/python2.6/site-packages/pexpect.py", línea 1325, en expect_list devuelve self.expect_loop(searcher_re(pattern_list), timeout, searchwindowsize) Archivo "/usr/lib/python2.6/ site-packages/pexpect.py", línea 1409, en expect_loop aumenta TIMEOUT (str(e) + '\n' + str(self))
Respuesta1
Prueba así:
child.expect("ada@ada's password:")
child.sendline("mypassword")
child.expect(pexpect.EOF, timeout=10)
¿Podría este enlace ayudarte?