Copiar archivos con SCP (SSH)

Para muchos esto no sea ningún tip, sino el día a día. Sin embargo, me he topado con muchos administradores de sistema no conocen un comando tan básico como scp. Además, seguro que muchos no saben que se puede controlar el ancho de banda mientras se copia un archivo. Útil para cuando copiamos archivos muy grandes al Internet pudiendo saturar nuestra conexión.

El comando SCP básicamente sirve para copiar archivos de un computador a otro, de manera encriptada, a través del protocolo SSH. Funciona de manera muy similar a como funciona el comando cp, donde tenemos un origen y un destino. La diferencia es que el origen o el destino van a ser computadores diferentes.

Ejemplo 1: Origen local, destino remoto

scp archivo.tar.gz usuario@servidorremoto.com:

En este caso el origen es un archivo local de la computadora donde estoy trabajando y el destino es el servidor remoto. El “:” al final del nombre del servidor quiere decir que vamos a copiar el archivo en el directorio home del usuario que realiza la copia. Después del : podríamos poner una ruta relativa al home del usuario o una ruta absoluta. Por ejemplo, si quisiera copiar en la ruta /home/usuario/directoriox

Rutas relativas:

scp arhivo.tar.gz usuario@servidorremoto.com:directoriox

Rutas absolutas:

scp arhivo.tar.gz usuario@servidorremoto.com:/home/usuario/directoriox

En este caso es más comodo usar la ruta relativa, pero no siempre será este el caso.

Ejemplo 2: Origen remoto, destino local

scp usuario@servidorremoto.com:arhivo.zip .

En este caso copiamos el archivo remoto archivo.zip (ubicado en el home del usuario) A la carpeta actual donde me encuentro en mi máquina local.
Tanto para el ejemplo 1, como para el 2 si quisieramos copiar un directorio, lo haríamos con la opción “-r”. En general las opciones de scp son las mismas que las del comando cp

Ejemplo 3: Puerto alternativo

Muchas personas no corren ssh en el puerto 22, en un post anterior expliqué como hacer para correr ssh en el puerto 443 en conjunto con https. Pues bien, ahora hagamos un ejemplo de copia de scp utilizando el puerto 443.

scp -P 443 -r /ruta/directorio usuario@servidorremoto.com:/ruta/deestino

En este caso copiamos todo un directorio y lo hacemos por el puerto no estadard 443.

Ejemplo 4: Limitar Ancho de Banda

Esta opción no la sabe mucha gente y en ocasiones puede ser muy útil. Que tal si queremos copiar un archivo muy grande desde o hacia Internet. Es muy probable que eso genere mucho tráfico que haga insoportable el uso del Internet para el resto de personas en la red, incluido quien esta subiendo el archivo. Por suerte, parece ser que los desarrolladores de Openssh han pensado en todo 🙂 y se puede limitar el ancho de banda de la transeferencia. Para esto usamos la opción “-l” seguido por el ancho de banda a limitar en kbits/segundo. (8 kbit/segundo = 1 kbyte/segundo)

scp -l 80 archivgrande.tar.gz usuario@servidorremoto.com:

De esta manera limitaremos la copia a 80 kbits/seg (10 kbytes/segundo).

Artículos relacionados

  • No existen artículos relacionados

5 pensamientos en “Copiar archivos con SCP (SSH)

  1. Pingback: Tweets that mention Rafael Bonifaz » Blog Archive » Copiar archivos con SCP (SSH) -- Topsy.com

  2. Pingback: Rafael Bonifaz » Blog Archive » OpenVPN how to 1

  3. estoy ejecutando este comando: scp /home/netses/descargas/elastixbackup-20140624104928-f4.tar: /var/www/html/backup
    y el resultado es este:
    /var/www/html/backup: No such file or directory

    me podrias ayudar por favor

    • por lo que sé “scp” solo es para copiar archivos por medio de secure shell, no es para copias locales, aunque tal vez te funcione haciendo uso de localhost: como ruta.

  4. lo que yo veo es que la ruta que estas utilizando es la siguiente:
    /home/netses/descargas/elastixbackup-20140624104928-f4.tar:/var/www/html/backup.

    Si quieres mandarlo a otro server te falta usuario@destino antes de :

    scp /home/netses/descargas/elastixbackup-20140624104928-f4.tar usuario@destino: /var/www/html/backup

    si quieres realizar copias en el mismo servidor debes utilizar el comando cp o mover el archivo mv.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You can encrypt your comment so that only Rafael Bonifaz can read it.