Copiar archivos a través de SSH con SCP de tu pc a tu Raspberry PI

Como administrador de un servidor Linux, hay momentos en los que tengo que copiar a dicho servidor un archivo que tengo en mi ordenador. Hay varias opciones para hacer esto. La primera es abrir un cliente FTP como puede ser Filezilla. La segunda es copiar los archivos por consola haciendo uso del comando SCP (Secure Copy). No me olvido de los usuarios de Mac, que pueden usar SCP igual que en Linux y, tampoco de los de Windows, que mediante WinSCP pueden hacer lo mismo.

SCP hace uso de SSH (Secure Shell) para hacer copias seguras y

encriptadas. Personalmente, me gusta mucho la consola cuando tengo claro lo que quiero hacer. Por ejemplo, para subir una carpeta al servidor, con un comando me basta y no necesito abrir Filezilla.

Uso de SCP

Tenemos que tener claros los parámetros de los que consta la instrucción:

  • Usuario: el nombre de usuario que utilicemos en el servidor.
  • Host: dirección IP o dominio del servidor remoto.
  • Archivo origen: ruta del archivo que queremos copiar.
  • Directorio origen: ruta del directorio completo que queremos copiar.
  • Directorio destino: ruta donde queremos copiar el archivo.
COPIAR ARCHIVOS DE LOCAL A SERVIDOR

Si queremos subir el archivo archivo.txt de nuestro ordenador a la carpeta /home/usuario del servidor, hacemos lo siguiente:

O alternativa: 
1
$scp -r -pw Password archivo.txt usuario@dominio.com:/home/usuario

COPIAR ARCHIVOS DE SERVIDOR A LOCAL

Si queremos copiar el fichero archivo.txt del servidor a nuestro ordenador en la carpeta Documentos, hacemos lo siguiente:

COPIAR ARCHIVOS DE SERVIDOR A SERVIDOR

Para copiar un archivo de un servidor a otro, hacemos lo siguiente:

COPIAR UN DIRECTORIO COMPLETO

Para copiar un directorio completo de mi ordenador al servidor, por ejemplo /home/mario/carpeta a /home/usuario, añadimos un -r en el comando:

LIMITAR EL ANCHO DE BANDA

Para no sobrecargar demasiado el servidor, es posible limitar el ancho de banda de la transferencia. Con el parámetro -l podemos indicar la velocidad (en Kbps).

UTILIZANDO pscp para terminales Windows y programar  backups

Regularmente utilizo scripts escritos en Linux para la realizacion automatica de mis backups. Pero en esta oportunidad debo de mover los backups de MSSQL desde una pc con Windows XP hacia mi servidor de backups. Para esta tarea me recomendaron utilizar el programada PSCP, el cual es desarrollado por los mismos de mi cliente favorito de ssh para windows: putty.

Descargar binario de PSCP

Para descargar el instalador de PSCP asi como el de putty pueden hacerlo en la pagina oficial. Para la instalacion tan solo se necesita moverlo a X carpeta.

Uso y parametros de pscp

Ya con nuestro ejecutable pscp descargado en nuestro sistema Windows, lo ejecutamos abriendo el command prompt y tecleando:

C:Documents and SettingsAdministradorpscp
PuTTY Secure Copy client
Release 0.60
Usage: pscp [options] [user@]host:source target
       pscp [options] source [source...] [user@]host:target
       pscp [options] -ls [user@]host:filespec
Options:
  -V        print version information and exit
  -pgpfp    print PGP key fingerprints and exit
  -p        preserve file attributes
  -q        quiet, don't show statistics
  -r        copy directories recursively
  -v        show verbose messages
  -load sessname  Load settings from saved session
  -P port   connect to specified port
  -l user   connect with specified username
  -pw passw login with specified password
  -1 -2     force use of particular SSH protocol version
  -4 -6     force use of IPv4 or IPv6
  -C        enable compression
  -i key    private key file for authentication
  -noagent  disable use of Pageant
  -agent    enable use of Pageant
  -batch    disable all interactive prompts
  -unsafe   allow server-side wildcards (DANGEROUS)
  -sftp     force use of SFTP protocol
  -scp      force use of SCP protocol

Como podran ver, al teclear el comando sin ningun parametro este nos mostrara la ayuda. Entonces siguiendo las instrucciones anteriores podemos hacer nuestra copia de seguridad remota utilizando el canal encriptado de ssh que nos brinda pscp. Como ejemplo, para mi solucion utilizo

Propietario>pscp -r -pw contraseña C:backups usuario@miservidor:/home/backups/

Donde,

  • -r , copiar los directorios recursivamente
  • -pw, password
  • C:backups, directorios a transmitir
  • usuario, nombre del usuario en ele servidor remoto
  • miservidor, ip o nombre del servidor con el camino a donde copiar la info

Programar el backup automaticamente en Windows

Para poder crear la tarea automatiza para la transferenicia segura de los archivos de la copia de seguridad, seguimos los siguientes pasos:

  1. Luego nos vamos a Inicio –> Todos los Programas –> Accesorios  –> Herramientas –> Tareas Programadas.
  2. Hacemos clic en Agregar Tarea Programada
  3. Luego clic en Examinar donde buscamos el ejecutable pscp.exe
  4. Lean y sigan los pasos del wizard.
  5. Antes de terminar la creacino de la tarea chequeamos la casilla de abrir propiedades avanzadas.
  6. En la nueva ventana, dentro de la casilla de ejecutar agregamos los parametros propios de nuestra configuracion al comando pscp.

Conclusiones

Utilizo bastante este comando y es muy útil. Ayuda a hacer copias rápidamente y desde la consola, sin tener que abrir ningún programa. Os recomiendo que lo uséis si trabajáis con servidores externos o incluso con la Raspberry Pi que tengáis en casa.

Related Articles

Este espacio lo he creado pensando en los entusiastas como tú, para compartir y centralizar documentación sobre temas que me apasionan: Arduino, impresoras 3D, Raspberry Pi, y mucho más.

Además, he querido fusionarlo con mi canal de YouTube, donde exploramos retro-informática, Raspberry Pi, consolas retro, electrónica y otras maravillas del mundo tecnológico. Este es tu sitio si disfrutas aprendiendo, creando y reviviendo lo mejor de la tecnología de ayer y hoy.

¡Bienvenido!