Base de conocimientos · Linux

Tutorial de SCP

Última actualización: 2020-04-05

Si trabaja en un entorno UNIX y necesita una forma rápida y segura de copiar archivos, le recomiendo usar scp desde la línea de comandos. SSH y OpenSSH proporcionan la aplicación scp, que le permite conectarse y transferir archivos en servidores que ejecutan un servicio FTP cifrado (el daemon de ssh). Si busca una aplicación con interfaz gráfica para X Window, quizá le interese probar http://gftp.seul.org/.


Así funciona scp:
(Observe el uso de los puntos; ¡son esenciales!)


1) Para copiar un archivo de hostB a hostA, con la sesión iniciada en hostB:
[user@server ~]$ scp -P port filename username@hostA.com:.
(copia el archivo en el directorio principal del usuario en la máquina hostA, debido al punto situado después de los dos puntos)


2) Para copiar una carpeta de hostB a hostA, con la sesión iniciada en hostB, primero use cd para ir al directorio de HostB que contiene la carpeta que desea copiar:
[user@server ~]$ scp -r -P port folder username@hostA.com:.
(crea una carpeta nueva si la carpeta no existe, de nuevo en el directorio principal del usuario)


3) Para copiar un archivo de hostA a hostB, con la sesión iniciada en hostB:
[user@server ~]$ scp -P port username@hostA.com:filename .
(copia en el directorio actual de hostB)

[user@server ~]$ scp -r -P port username@hostA.com:folder .
(copia la carpeta completa en el directorio actual de hostB)


4) Para copiar un archivo o una carpeta contenidos en otra carpeta de hostA a hostB, con la sesión iniciada en hostB:
[user@server ~]$ scp -P port username@hostA.com:/folder/dir/filename .
(copia en el directorio actual de hostB)

[user@server ~]$ scp -r -P port username@hostA.com:/folder/dir .
(copia la carpeta completa en el directorio actual de hostB)


5) En lugar de usar el '.' para indicar que los archivos se copien en el directorio principal o en el directorio de trabajo actual, puede indicar a scp una ruta concreta (siempre que tenga permisos de escritura):
[user@server ~]$ scp -r -P port folder username@hostA:/home/httpd/

[user@server ~]$ scp -P port username@hostA.com:/folder/dir/filename /home/tmp/


¿Su proveedor de alojamiento impone un control de recursos sobre ssh?
Basta con aplicar nice a cualquiera de las instrucciones anteriores, o a todas, con un prefijo como

[user@server ~]$ nice -n +19

Puede cambiar el número 19 por cualquier valor inferior al límite de recursos de su proveedor de alojamiento.

← Todos los artículos de base de conocimientos

Tell us what you need

Compare available plans or describe your workload so we can discuss a suitable starting point.