Trasferir archivos y carpetas por SSH


Copiar archivos a través de SSH con SCP

En ocasiones necesito copiar archiovs o carpetas en el servidor de la Raspberry PI. 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). SCP hace uso de SSH (Secure Shell) para hacer copias seguras y encriptadas.



El parametro scp puede llevar asociado modificadores, estos son los más usados:
  • -P puerto de conexión
  • -r copia recursiva, para mover directorios
  • -l para limitar el ancho de banda
  • -q modo silencioso, solo se muestran errores críticos
  • -u borrará el archivo fuente una vez trasferido
  • -v muestra información de la trasferencia

COPIAR ARCHIVOS DE LOCAL A SERVIDOR

Si queremos subir el archivo archivo.txt de nuestro ordenador a la carpeta /home/usuario/Descargas del servidor, nos situamos en el directorio donde se encuentra el archivo y hacemos lo siguiente:

A un dominio

scp -p puerto ruta/archivo/local usuario@dominio.com:/ruta/archivo/servidor

Ejemplo:

scp -P 2233 Descargas/archivo.txt raspberry@ddns.asuscomm.com:/home/raspberry/Descargas

A una dirección IP

scp -p puerto ruta/archivo/local usuario@direccion_ip:/ruta/archivo/servidor

Ejemplo:

scp -P 2233 Descargas/archivo.txt raspberry@192.168.1.227:/home/raspberry/Descargas

COPIAR ARCHIVOS DE SERVIDOR A LOCAL

Si queremos copiar el fichero archivo.txt del servidor a nuestro ordenador en la carpeta Documentos, (debemos de saber la ruta del archivo en el servidor) hacemos lo siguiente:

A un dominio

scp usuario@dominio.com:/home/usuario/Descargas/archivo.txt Documentos

Ejemplo:

scp -P 2233 raspberry@ddns.asuscomm.com:/home/raspberry/Descargas/archivo.txt Documentos

A una dirección IP 

scp usuario@dominio.com:/home/usuario/archivo.txt Documentos

Ejemplo:

scp -P 2233 raspberry@192.168.1.227:/home/raspberry/Descargas/archivo.txt Documentos

COPIAR UN DIRECTORIO LOCAL A SERVIDOR

Para copiar un directorio completo de mi ordenador al servidor, por ejemplo, para compartir la carpeta Hiroshima, que se encuentra en nuestro directorio personal, nos situamos en el mismo directorio donde se encuentra la carpeta a subir y añadimos la ruta del servidor donde hay que copiarla añandiendo un -r en el comando:

A un dominio

scp -r /home/usuario/carpeta usuario@dominio.com:/home/usuario

Ejemplo:

scp -P 2233 -r Hiroshima raspberry@ddns.asuscomm.com:/home/raspberry

A una dirección IP

scp -r /home/usuario/carpeta usuario@dominio.com:/home/usuario

Ejemplo:

scp -P 2233 -r Hiroshima raspberry@192.168.1.227:/home/raspberry

Otro ejemplo:

scp -P 2233 -r ./* raspberry@192.168.1.227:/home/usuario/Descargas

Esto " ./* " haría que se subieran todos los archivos de la carpeta donde te encuentras en el terminal (la carpeta actual, con todos los archivos y todas las subcarpetas). Se subirá al servidor a la ruta /home/usuario/Descargas.

COPIAR UN DIRECTORIO DEL SERVIDOR A LOCAL

Para copiar un directorio completo de mi servidor a mi ordenador, debemos saber la ruta de la carpeta en el servidor. Por ejemplo para copiar la carpeta Hiroshima, que se encuentra en la ruta /home/raspberry/Hiroshima a la carpeta home de mi PC, añadimos un -r en el comando:

A un dominio

scp -P -r usuario@dominio.com:/home/usuario/carpeta_remota ruta_destino_en_local/

Ejemplo:

scp -P 2233 -r raspberry@ddns.asuscomm.com:/home/raspberry/Hiroshima /home/usuario

A una dirección IP

scp -P -r usuario@direccion_IP:/home/usuario/carpeta_remota ruta_destino_en_local/

Ejemplo:

scp -P 2233 -r raspberry@192.168.1.227:/home/raspberry/Hiroshima ~/

Como has visto, colocando "~/" indicamos que la ruta de subida del archivo es la carpeta personal. No hace falta por tanto que conozcas la ruta física de esa carpeta.

COPIAR ARCHIVOS DE SERVIDOR A SERVIDOR

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

scp usuario1@dominio1.com:/home/usuario1/archivo.txt usuario2@dominio2.com:/home/usuario2/

LIMITAR EL ANCHO DE BANDA

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

scp -P 2233-l limite usuario@dominio.com:/home/usuario/archivo.txt Documentos

Ejemplo:

scp -P 2233 -l 1024 usuario@ddns.asuscomm.com:/home/usuario/archivo.txt Documentos


Conclusión comando scp

Este comando y es muy útil, ayuda a hacer copias rápidamente y desde la consola, sin tener que abrir ningún programa. Recomendable de usar con la Raspberry Pi que tengáis en casa o con cualquier ordenador en remoto al que tengais acceso.

Comentarios

Entradas populares de este blog

TP-Link WR841ND repetidor WIFI

Instalar y Configurar aMule en Ubuntu

II. Vodafone Technicolor Tc7230 modo bridge.