Transferencia de archivos scp

Iniciado por dexposit, 11 Enero 2012, 17:12 PM

0 Miembros y 1 Visitante están viendo este tema.

dexposit

Buenos días,

necesito programar un .bat para hacer la transferencia scp entre un Win y un Linux, teneis experiencia con esta transferencia entre SO diferentes???

Lo pregunto de cara al control de errores, es decir, en el momento en que hago un SCP desde Linux si no se ha hecho la transferencia por el motivo que sea (ya sea por la inexistencia de ficheros a transferir, por errores en la conexión, etc), el scp me devuelve un error directamente después de la sentencia scp ..... ¿Teneis idea si puedo hacer el mismo tratamiento de errores en windows?

Gracais de antemano.
Saludos

Eleкtro

#1
No entiendo muy bien de que modo quieres que interactue un .Bat con linux, ¿Quieres ejecutar un BAT desde Windows que trabaje sobre una distro de LINUX? ¿Y eso como se hace? o.O Ni con una maquina virtual se me ocurre XD, En serio, Tengo curiosidad...



Bueno de todas formas, creo que al final de tu comentario lo que intentas averiguar es como usar el control de errores en batch?

Pues es sencillo!

ERRORLEVEL

Un ejemplo:

Código (dos) [Seleccionar]
@Echo OFF
Copy "C:\Archivo que no existe"   "C:\"
Echo %errorlevel%
Pause


El código de error en ese caso será el "1", Porque el archivo no se ha encontrado...

El código de error cuando todo está ok, osea, cuando no hay errores, como norma general es el "0".

Ahora viene lo importante, el código de error como ya sabes, puede variar según el error, y según si el "programador" haya querido cambiar dichos números, quiero decir... el errorlevel del comando "copy" cuando no encuentra una rchivo, es el "1", pero en un programa de terceros, podría ser el "2"...

Así que podemos decirle al script que si el código de error es igual o mayor de "1", lo tome como error, porque ya sabemos que si el errorlevel no es "0", entonces es un error xD:

Código (dos) [Seleccionar]
@Echo OFF
Copy "C:\Archivo que no existe"   "C:\"

If %errorlevel% GEQ 1 (
   Echo hubo un error
   Pause
) ELSE (
   Echo No hubo ningun error
)
Pause



Esto te puede ayudar:
EQU - equal
NEQ - not equal
LSS - less than
LEQ - less than or equal
GTR - greater than
GEQ - greater than or equal



PD: Espero que sea eso lo que preguntabas y que te sirva de algo...   ._.








dexposit

gracias por contestar tan rápido.

lo que necesito hacer es hacer una transferencia mediante scp desde un win a un linux, y me gustaría saber si alguien ha tenido la experiencia de hacer esto para saber como lo tengo que hacer y lo que me hace falta.

Por ejemplo entre máquinas linux tengo que establecer unas claves de confianza entre los usuarios que van a hacer la transferencia en la home del usuario en la carpeta .ssh, pero en windows no se como estableccer las claves de confianza y tampoco se como ejecutar un scp desde win

saludos

leogtz

Hacer la transferencia de directorios con linux a un disco o partición montada con windows es fácil, pero con windows es otro rollo.... investiga si se puede.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

m0rf

Te recomiendo PSCP es un cliente SCP para windows de los creadores de putty.

Aquí te dejo el link: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Saludos.
Si todos fuéramos igual de inteligentes no existiría la mediocridad porque no podríamos apreciarla. Aprecias la mediocridad?

dexposit

ya tengo el pscp.exe pero no encuentro la forma de ejecutar la transferencia de un archivo de mi máquina windows a otra windows. Lo que  estoy ejecutando tiene la siguiente forma:

scp.exe C:\Users\dexposit\Desktop\archivoPDF.txt administrator@10.109.54.14:./C:\

scp.exe C:\Users\dexposit\Desktop\archivoPDF.txt administrator@10.109.54.14:C:\

scp.exe C:\Users\dexposit\Desktop\archivoPDF.txt administrator@10.109.54.14:C:/


pero me saalta un mensaje de error network en todos los intentos. Habeis hecho alguna prueba de hacer elscp de una windows a otra windows??

m0rf

Tienes instalado un servidor ssh en el equipo al cual pides ese archivo?
Si todos fuéramos igual de inteligentes no existiría la mediocridad porque no podríamos apreciarla. Aprecias la mediocridad?

helldarkspawn

Quizás a estas alturas ya tengas la sintaxis correcta de como hacerlo, pero para quienes lleguen a este tema y tengan la misma necesidad.

La linea de comando varia un poco según en donde tengan ubicado el archivo pscp.exe.

Por ejemplo:
C:\Users\Administrador\Desktop>pscp.exe C:\Isos\rhel-5.7.iso root@10.110.110.120:root\Desktop

Despues de esto nos aparecera una serie de preguntas y la peticion del pass de nuestro usuario en linux

En esta instruccion le decimos a pscp que se encuentra en el escritorio nos mueva de forma segura el archivo rhel-5.7.iso que esta ubicado en C en x carpeta hacia el escritorio en linux.

Espero le sirva a alguien.

Andaba buscando el pscp y di con este mensaje asi que lo actualizo.

Saludos.