Para copiar archivos entre servidores linux es muy útil usar el comando SCP. Ahorra tiempo, ya que no necesitamos tener que descargarlos previamente para poder subirlos al servidor destino. La transferencia de archivos se hace directamente.

Comando SCP para copiar ficheros entre servidores

El comando SCP es la versión segura del comando CP. De ahí que se llame Secure CoPy. Es una extensión del comando SSH y permite que se puedan copiar archivos entre distintos servidores o máquinas de forma segura, pidiendo autenticación previa.

El formato del comando es el siguiente:

scp [servidor origen]:[archivo] [servidor destino]:[archivo]

Donde [archivo] puede ser un archivo como tal o una ruta de un archivo, o una ruta de una carpeta:

  • Ejemplo de ruta de archivo: /home/usuario/archivo.txt
  • Ejemplo de ruta de carpeta: /home/usuario/carpeta
  • Ejemplo de archivo: archivo.txt

La última opción es cuando estamos sobre la carpeta en la que se encuentra el archivo, como es obvio.

Después del usuario@servidor hay que usar el signo de los dos puntos : para indicar a continuación el archivo o ruta de lo que se quiere copiar.

Copiar de mi servidor a otro

Viendo los ejemplos anteriores, el caso de querer copiar un archivo desde mi máquina a otra, tendremos que hacer lo siguiente:

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

En este caso, hemos puesto como servidor destino el usuario y el dominio, pero podemos usar también como alternativa:

  • Con la ip de la máquina: usuario@192.168.1.15
  • Con el nombre de la máquina: usuario@srvpruebas

Cuando pulsemos el intro nos pedirá la contraseña del usuario de la máquina destino para que nos permita realizar la copia.

Copiar de otro servidor al mío

Esto sería al contrario, copiar desde un servidor al nuestro.

scp usuario@dominio.com:/home/usuario/ .

En este caso he puesto el punto para indicar que lo copie en la carpeta que me encuentro. Pero podría haber puesto también por ejemplo /home/usuario/carpeta para que lo copiara en esa ruta.

Copiar entre dos servidores

Si queremos realizar la copia entre servidores en los que no estamos logados, es decir, servidores ajenos al que estamos conectados, tenemos que hacer lo siguiente:

scp usuario_uno@servidor1:/home/usuario_uno/archivo.txt usuario_dos@servidor2:/home/usuario_dos/

Aquí nos pedirá las credenciales de ambos usuarios para poder realizar la copia.

Copia recursiva con el comando SCP

Si queremos copiar una carpeta con todos sus archivos, tenemos que usar el parámetro -r.

scp -r /carpeta usuario@servidor:/home/usuario/carpeta-destino

Esto yo no lo recomiendo, sobre todo si la carpeta contiene cientos de archivos y muy pequeños. La copia puede tardar demasiado. Para estos casos es recomendable comprimirla primero, copiar el archivo comprimido, y descomprimir el servidor destino. Ahorrarás mucho tiempo.

Para comprimir arhivos en linux te recomiendo el tutorial: comprimir y descomprimir archivos en linux

Comando SCP con puerto

Si necesitas especificar el puerto del host remoto debes usar el parámetro:

-P [puerto]

donde -P debe ser en mayúsculas. Ejemplo:

scp -P 80 archivo.txt usuario@dominio.com:/home/usuario/

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies