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).
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.
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.
espero que funcione 🙂