GNU/Linux >> Tutoriales Linux >  >> Linux

10 ejemplos prácticos del uso del comando scp

Probablemente ya esté familiarizado con el comando cp en Linux que se usa para copiar archivos en Linux. El comando cp solo se puede usar en la máquina local.

Pero, ¿qué pasa con la copia de archivos desde un sistema Linux remoto? Para copiar archivos desde un servidor remoto o hacia un servidor remoto, puede usar un comando llamado scp.

Curiosidad:scp es la forma abreviada de Copia segura.

sintaxis del comando scp

La sintaxis y el uso del comando scp es similar al comando cp y lo verá en breve en estos ejemplos de comandos scp.

Pero primero echemos un vistazo a la sintaxis del comando scp:

scp <options> source_path destination_path

Dependiendo del origen del archivo a copiar, la fuente puede ser cliente o servidor. Si el origen es el cliente, el destino es el servidor y viceversa.

Pero eso suena demasiado simple, ¿no? El enfoque principal del comando scp es usar el formato correcto para el formato de la ruta de origen o de destino.

Una ruta típica a un archivo o directorio en el servidor se representa en este formato:

<username>@<ip_address_of_system>:<path_to_the file/directory>

En realidad, también puede usar [email protected] en el comando scp, pero es más probable que termine con un error "No se pudo resolver el nombre de host “.

Esto se debe a que la correlación del nombre de host con la dirección IP depende de la configuración de red de la red del servidor. El uso de la dirección IP real le ahorra problemas.

Cosas para tener en cuenta antes de usar el comando scp

Aquí hay un par de cosas que necesita antes de poder usar el comando scp en su sistema Linux:

  • Asegúrese de que ssh esté instalado y ejecutándose tanto en el cliente como en el servidor, ya que el comando scp usa ssh internamente. Si ssh no está instalado, instálelo usando el comando “sudo apt install ssh” en máquinas basadas en Debian o utilizando los respectivos administradores de paquetes de su distribución.
  • Necesita conocer el nombre de usuario y la contraseña del sistema remoto. Se le pedirá que ingrese la contraseña del host remoto. Su transferencia de archivos comenzará solo cuando ingresa la contraseña correcta del host remoto.

Uso del comando scp en Linux:10 ejemplos prácticos

Ahora que hemos visto la sintaxis del comando scp y el formato para especificar la ruta al servidor, veamos cómo usar el comando scp.

1. Copiar un archivo al sistema remoto usando el comando scp

Para copiar un solo archivo de la máquina local al host remoto, especifique la ruta del archivo como ruta de origen y la ruta en el host remoto donde se debe copiar el archivo.

scp abc.txt [email protected]<ip_address_of_xyz>:/home/xyz/Desktop

2. Copiar un archivo desde el sistema remoto usando el comando scp

Copiar un archivo del sistema remoto al sistema local es prácticamente lo mismo. Solo necesita especificar la ruta completa al archivo en el sistema remoto y la ruta en el sistema local.

Entonces, para copiar un archivo del sistema remoto al directorio actual, simplemente use el comando de la siguiente manera:

scp [email protected]<ip_address_of_xyz>:/remote/user/home/abc.txt .

3. Copiando múltiples archivos usando el comando scp

Para copiar varios archivos desde la máquina local al host, simplemente especifique el nombre de los archivos como la ruta de origen.

scp abc.txt def.txt [email protected]<ip_address_of_xyz>:/home/xyz/Desktop

4. Copiando un directorio completo con el comando scp

Copiar un directorio usando scp también es lo mismo que el comando cp. Puede usar la opción -r y especificar el nombre de la carpeta como ruta de origen. Esto se llama el modo recursivo.

scp -r ~/Desktop/test [email protected]<ip_address_of_xyz>:/home/xyz/Desktop

También puede especificar más de un directorio y copiarlos todos en un solo comando.

5. Ver los detalles de la transferencia de archivos en la salida

Si tiene curiosidad por saber qué sucede detrás de escena mientras copia, puede usar la opción -v para ver todos los procesos que se ejecutan, incluida la depuración, el estado de salida, el cifrado, el descifrado, etc. Se llama modo detallado.

scp -v abc.txt [email protected]<ip_address_of_xyz>:/home/xyz/Desktop

6. Copiando archivos a través de dos hosts remotos

Hasta ahora, ha visto cómo copiar desde una máquina local a una máquina remota.
Para copiar archivos de una computadora remota a otra computadora remota, especifique las rutas de origen y destino en el formato de la computadora remota como se explicó anteriormente.

scp [email protected]<ip_address_of_abc>:<path_of_file_or_folder> [email protected]<ip_address_of_xyz>:<path_of_file_or_folder

No hace falta decir que necesita saber la contraseña de ambos sistemas aquí.

7. Copiar archivos con compresión [reduce el tiempo de transferencia]

Si intenta copiar un montón de archivos juntos, llevará más tiempo que la transferencia de un solo archivo del tamaño equivalente a la suma de todos los archivos individuales.

Si cree que necesita aumentar la velocidad de transferencia de archivos, puede comprimir los archivos usando la opción -C y transferir los archivos.

Lo mejor es que la compresión ocurre solo durante la transferencia. Una vez que se completa la transferencia, los archivos se almacenarán en su forma original. No verá un archivo archivado, sino todos los archivos individuales tal como estaban en el servidor remoto.

scp -C abc.txt [email protected]<ip_address_of_xyz>:/home/xyz/Desktop

8. Limitación del ancho de banda de la transferencia de archivos

Si cree que la transferencia de archivos utiliza la mayor parte del ancho de banda, puede reducir el ancho de banda de la transferencia de archivos utilizando la opción -l seguida de la nueva tasa de ancho de banda.

scp -l 800 abc.txt [email protected]<ip_address_of_xyz>:/home/xyz/Desktop

Tenga en cuenta que el ancho de banda que especifica en el comando está en kilobits por segundo, pero mientras transfiere los archivos, la salida del comando scp mostrará la tasa de transferencia en kilobytes por segundo.

Dado que 1 byte =8 bits, los 8300 kilobits por segundo en el parámetro de comando se convierten en 100 kilobytes por segundo en la salida del comando.

9. Preservar los atributos originales de los archivos copiados

Si necesita conservar los atributos del archivo original, como los permisos y la propiedad del archivo, las marcas de tiempo del archivo, etc., use la opción -p.

scp -p abc.txt [email protected]<ip_address_of_xyz>:/home/xyz/Desktop

10. Ocultar la salida del comando scp

Si no se siente cómodo con la larga salida del comando scp, puede evitar la salida del comando usando la opción -q. Esto se llama el modo tranquilo.

Incluso oculta el progreso de la copia de archivos.

scp -q abc.txt [email protected]<ip_address_of_xyz>:/home/xyz/Desktop

En los ejemplos anteriores, ha visto cómo copiar los archivos al host remoto desde la máquina local. Si necesita copiar archivos desde el host remoto a la máquina local, escriba la ruta del archivo/carpeta que se copiará desde el host remoto como ruta de origen y la ruta donde se debe pegar el archivo/carpeta en la máquina local como destino camino.

Para obtener más detalles sobre el comando scp, consulte su página man.

Espero que ahora haya entendido cómo hacer el mejor uso del comando scp para copiar archivos de forma segura entre computadoras. Personalmente, prefiero usar el comando rsync sobre scp porque rsync tiene más funciones.

Si encuentra algún problema, no dude en hacer preguntas en la sección de comentarios a continuación. Y si conoce algún otro consejo de comando scp increíble, compártalo con el resto de nosotros aquí.


Linux
  1. 10 ejemplos prácticos de comandos Grep para desarrolladores

  2. Comando cp en Linux:7 ejemplos prácticos

  3. Comando de apagado de Linux:5 ejemplos prácticos

  4. 5 ejemplos prácticos del comando dd en Linux

  5. Ejemplos de uso del comando dmsetup en Linux

12 ejemplos prácticos de In Command en Linux

Los 50 Ejemplos Prácticos del Comando SED en Linux

15 ejemplos prácticos del comando Rsync en Linux

5 ejemplos prácticos de Tail Command en Linux

Comando echo en Linux:7 ejemplos prácticos

Ejemplos prácticos de comando ping en Linux