Foros del Web » Administración de Sistemas » Unix / Linux »

Expect Transferencia de archivos incompletos

Estas en el tema de Expect Transferencia de archivos incompletos en el foro de Unix / Linux en Foros del Web. Hola a todos, yo he utilizado este foro para resolver varias dudas de muchas cosas en programación. Ahora quisiera pedirles su ayuda ya que se ...
  #1 (permalink)  
Antiguo 09/09/2015, 12:31
 
Fecha de Ingreso: marzo-2011
Mensajes: 4
Antigüedad: 13 años, 8 meses
Puntos: 0
Pregunta Expect Transferencia de archivos incompletos

Hola a todos, yo he utilizado este foro para resolver varias dudas de muchas cosas en programación. Ahora quisiera pedirles su ayuda ya que se que muchos deben tener experiencia en el tema del comando Expect en Unix para transferencia de archivos entre servidores.

El problema que tengo actualmente es que al momento de realizar la transferencia del archivo, este no lo traslada por completo, ejemplo un archivo de 500,000 en el server origen, lo traslada al server destino pero incompleto digamos a la mitad 250,000 registros, a nivel de código no le veo ningún problema, también a nivel red ya se ha verificado no hay perdida de paquetes de datos, por lo que después de tanta revisión pienso que es la manera en que es esta utilizando el expect, lo malo es que este hace el traslado de 5 intentos en uno realiza el traslado completo, y esto debe ser por alguna cuestión propia del EXPECT, alguien que la haya ocurrido esto y que pueda indicar como lo soluciono.

como les mencione anteriormente a nivel de código no presenta error, simplemente no traslada por completo el archivo y se tiene que realizar varios traslados, incluso se hacen manual, pero la idea es que esto este automatizado.

gracias amigos por su ayuda.
  #2 (permalink)  
Antiguo 10/09/2015, 08:56
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Expect Transferencia de archivos incompletos

pues deberías poner el código que estás usando, discutir qué podría estar mal en teoría no nos llevará a ningún lugar. También deberías aclarar por qué estás usando "expect" para transferir archivos, asumo que en realidad estás usando algo como scp y expect para ingresar una contraseña o algo así. En ese caso expect no debería ser la raíz del problema.
  #3 (permalink)  
Antiguo 10/09/2015, 13:25
 
Fecha de Ingreso: marzo-2011
Mensajes: 4
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Expect Transferencia de archivos incompletos

Gracias, es correcto uso expect para manejar la parte de usuario y contraseña y los comandos de transferencia sftp, y que una tarea programada para envió de archivos, el código es el siguiente, todo funciona bien, pero en la parte del PUT, inicia la transferencia pero por alguna razón deja de realizar la transferencia dejando el archivo incompleto, sin dejar ningún error.

expect -c
spawn sftp $CUENTA_LOC
expect \"Password:\"
send \"$CLAVE_LOC\r\"
expect \"\\\\sftp>\"
expect \"\\\\sftp>\"
send \"cd ${RUTA_REMOT} \r\"
expect \"\\\\sftp>\"
send \"put ${RUTA_LOC}/${ARCH_LOC} \r\"
expect \"\\\\sftp>\"
send \"bye\r\"
  #4 (permalink)  
Antiguo 11/09/2015, 09:13
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Expect Transferencia de archivos incompletos

Bueno, lo primero que habría que verificar es que el sftp manual no provoque el mismo problema.

Segundo, como sugerencia: el uso de expect en este caso es innecesario, si lo que querés es no tener que ingresar la contraseña de forma manual lo correcto es usar autentificación con clave pública, y configurar correctamente el cliente ssh.

Además, tampoco es necesario para hacer la transferencia interactiva, lo siguiente funciona de la misma manera:

Código BASH:
Ver original
  1. echo "cd $RUTA_REMOT
  2. put $RUTA_LOC/$ARCH_LOC
  3. exit" | sftp $CUENTA@$SERVIDOR

Lo que quiero decir es que no sé por qué te está sucediendo lo que te está sucediendo, pero al menos se puede de forma sencilla eliminar "expect" de la ecuación.


Saludos.

Etiquetas: server, servidor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:18.