¿Qué es SCP?
SCP (Secure Copy) es un comando de Linux que tiene como finalidad la transferencia de directorios o archivos entre diferentes servidores, haciendo uso de SSH (Secure Shell) ó interprete de comandos seguro, esto nos asegura un mismo nivel de seguridad para SCP.
El comando nos ofrece la posibilidad de:
- Realizar copias de un directorio de un sistema local a un sistema remoto.
- Realizar copias de un directorio de un sistema remoto a un sistema local.
- Realizar copias de un directorio entre dos sistemas remotos.
Elementos del comando SCP
La instrucción para SCP esta conformada por:
- Usuario: El nombre de usuario que utilicemos en el servidor.
- Servidor o Host: Se refiere a la dirección IP del servidor remoto.
- Directorio o archivo origen: Ruta completa del archivo o directorio que necesitamos copiar.
- Directorio destino: Ruta donde se requiere la copia del archivo.
¿Cómo usar el comando SCP?
Sintaxis del comando Secure Copy
1 |
scp [-p] [-v] [-r] [-C] [-i identity_file] [[username@]host:]file ... [[username@]host:]file_or_dir |
Ahora veamos detalladamente a que se refiere cada una de las opciones
-p Utiliza las fechas de modificación, acceso y modo del archivo original.
-v Nos permite activar los mensajes de depuración para el diagnostico de problemas.
-r Copia directorios completos junto con sus respectivos subdirectorios.
-C Activa la compresión en la conexión SSH.
-i Establece un archivo que contiene la clave privada para establecer la conexión SSH.
Ejemplos básicos
Copiar archivos servidor local a servidor remoto
Si queremos subir un archivo “prueba.txt” de nuestra computadora a la carpeta servidor “/home/usuario” vamos a la terminal y escribimos lo siguiente:
1 |
$ scp prueba.txt usuario@dominio.com:/home/usuario |
Copiar archivos servidor remoto a servidor local
Bien ahora si lo que necesitamos es copiar un archivo “prueba.txt” del servidor remoto a la carpeta “ProgramacionWeb” de nuestra computadora vamos a la terminal y escribimos lo siguiente:
1 |
$ scp usuario@dominio.es:/home/usuario/prueba.txt ProgramacionWeb |
Copiar directorios completos
Si tenemos que copiar un directorio completo agregamos la opción -r al comando que indica que debe tomar el directorio, luego escribimos la ruta del directorio que vamos a copiar y a continuación la ruta a donde queremos transferirlo.
1 |
$ scp -r home/2016/cucei usuario@dominio:/home/ejemplos |
Utilizando más opciones del comando scp para copiar archivos
Cabe recordar que tenemos una lista de opciones para dicho comando que podemos utilizar según se requiera. Por ejemplo: si nos interesa la tasa de transferencia con la que se copiaran los archivos podemos utilizar la opcion -l como a continuación:
1 |
$ scp -l limite usuario@dominio.es:/home/usuario/prueba.txt ProgramacionWeb |