Inicio > Linux > Copiar archivos utilizando SCP en Linux

Copiar archivos utilizando SCP en Linux

Miércoles, 29 de Julio de 2009 jarrarte Dejar un comentario Ir a comentarios

SCP (secure copy) es un comando de Linux que nos permite copiar directorios o archivos entre diferentes hosts que utiliza la autenticación SSH y por lo tanto provee el mismo nivel de seguridad.

Sintaxis

La sintaxis del comando, con las opciones más relevantes es las sigiuente:

scp [-p] [-v] [-r] [-C] [-i identity_file] [[username@]host:]file ... [[username@]host:]file_or_dir

Las descripción de las opciones es la siguiente:

  • -p: preserva las fechas de modificación, acceso y modo del archivo original.
  • -v: verbose mode. Habilita mensajes de debug para diagnosticar problemas de conexión, autenticación o configuración.
  • -r: modo recursivo al copiar directorios (copia también los subdirectorios)
  • -C: habilita la compresión en la conexión SSH
  • -i identity_file: selecciona el archivo desde el cual se lee una clave privada. Esta clave privada se pasa a SSH a la hora de establecer la conexión

Ejemplos de uso

Enviar un archivo a un host remoto

scp archivo.txt usuario@host:/ruta/de/destino/archivoDestino.txt

Envía archivo.txt a host, a la ruta /ruta/de/destino, y lo graba con el nombre archivoDestino.txt. La conexión se establecerá utilizando el nombre de usuario especificado, y el dueño del archivo en el host será el utilizado en la conexión.

scp archivo.txt usuario@host:archivoDestino.txt

Si no se especifica la ruta de destino, se copiará al directorio del usuario especificado (/home/usuario).

scp archivo.txt host:archivoDestino.txt

Si no se especifica un usuario remoto, utilizará el nombre con el que estamos logueados actualmente en el host local.

Copiar un archivo desde un host remoto

scp usuario@host:/ruta/archivoRemoto.txt ./archivo.txt

Copia archivoRemoto.txt del host remoto a mi directorio actual, y lo nombramos archivo.txt.

scp usuario@host:archivoRemoto.txt ./

Copia archivoRemoto.txt ubicado en el home de usuario del host remoto a mi ubicación actual.

Copiar un directorio entero hacia un host remoto

scp -r dirLocal usuario@host:/ruta/de/destino/

Este comando copia el directorio dirLocal a /ruta/de/destino en el host remoto, conectándonos como usuario. El directorio de destino ya debe de existir.

Otra opción es crear un archivo tar o tar comprimido (.tar.gz), copiar ese único archivo y descomprimirlo en el destino.

Copiar un directorio entero desde un host remoto

scp -r usuario@host:/ruta/dirRemoto/ /tmp/

Copia el directorio /ruta/dirRemoto ubicado en el host remoto, y lo copia en el directorio local /tmp

Copiar un archivo entre hosts remotos

Otra de las posiblidades del comando SCP es copiar un archivo (o directorio, similar a los ejemplos antes mostrados) desde un host remoto a otro host remoto.

scp usuario1@host1:/ruta/en/host1/archivoHost1.txt usuario2@host2:/ruta/en/host2/archivoHost2.txt

En este ejemplo, usuario1 es un usuario de host1, mientras que usuario2 es un usuario de host2.

Uso desde Windows

Si necesitamos copiar archivos o directorios desde un ambiente Windows podemos utilizar la excelente aplicación WinSCP, que nos provee una interfaz gráfica para mover, copiar, renombrar, cambiar permisos, etc. Su interfaz es muy intuitiva, y nos permite visualizar el contenido local y remoto con dos paneles al estilo Norton Commander o con otro estilo más parecido al explorador de Windows.

Posts relacionados (generados automáticamente):

  1. Copiar archivo y particiones utilizando dd (Linux/UNIX)
  2. Descargar archivos de sitios de file-sharing por consola en Linux
  3. UnxUtils: ejecutar comandos Linux/UNIX en Windows
  4. Audio y video en Java utilizando ffmpeg, Jffmpeg, y JMF
  5. Ejecutar aplicaciones gráficas de X11 (Linux y Unix) en Windows

Categories: Linux Tags: