Cómo usar el comando SCP para transferir archivos
SCP es un programa de copia segura para transferir archivos o directorios entre hosts Linux en la red. SCP usa el protocolo ssh para transferir los datos.
Puede transferir archivos o directorios de la siguiente manera:
1) Host local a un host remoto.
2) Sistema remoto a su sistema local.
3) Transferencia entre dos hosts remotos desde su sistema local.
En este tutorial, aprendamos algunos comandos scp para transferir archivos entre sistemas Linux.
1) Copie un archivo del host remoto al local usando el comando scp
El siguiente ejemplo copiará el archivo llamado ‘file_for_copy.txt’ del sistema remoto ‘192.168.1.10’ al directorio actual (los puntos indican el directorio actual) en el sistema local.
$ scp bobby@192.168.1.10:/home/bobby/file_for_copy.txt . bobby@192.168.1.10's password: file_for_copy.txt 100% 0 0.0KB/s 00:00
bobby@Inspiron-1440:~$ ls file_for_copy.txt
Copie un directorio del host remoto al local usando el comando scp
Los directorios se pueden copiar con -r
opción (como la mayoría de los comandos como cp), es decir, de forma recursiva, por lo que todo el contenido dentro del directorio también se puede copiar
$ scp -r bobby@192.168.1.10:/home/bobby/dir_for_copy . bobby@192.168.1.10's password: file1.txt 100% 0 0.0KB/s 00:00 file3.txt 100% 0 0.0KB/s 00:00 file2.txt 100% 0 0.0KB/s 00:00
$ ls -ld dir_for_copy drwxrwxr-x 2 bobby bobby 4096 2012-11-07 15:11 dir_for_copy
3) Copie un archivo del host local al remoto
La opción -v de scp imprime un resultado detallado, que luego realiza el scp y también imprime mensajes de depuración sobre su progreso. En el siguiente ejemplo, se utiliza la opción -v. Aquí, se copia un archivo local al host remoto.
$ scp -v examples.desktop bobby@192.168.1.10:/home/bobby
Del mismo modo, un directorio se puede copiar con -r
opción. En el siguiente ejemplo, se copia un directorio llamado jvm en el host remoto.
$ scp -r jvm bobby@192.168.1.10:/tmp bobby@192.168.1.10's password: file2.txt 100% 42 0.0KB/s 00:00 file.txt 100% 39 0.0KB/s 00:01
4) Copiar archivos entre dos hosts remotos desde el host local
Para copiar un archivo entre dos hosts, el servicio ssh debe estar ejecutándose en ambas máquinas. los -3
La opción transferirá archivos entre dos hosts remotos a través del host local. El siguiente comando copia el archivo /home/bobby/myfile1.txt de la máquina 192.168.1.10 al directorio / tmp en la máquina 192.168.1.20, con una salida detallada.
$ scp -3 -v bobby@192.168.1.10:/home/bobby/myfile1.txt bobby@192.168.1.20:/tmp
De manera similar, los directorios se pueden copiar entre dos máquinas remotas con la opción -r.
$ scp -3 -r bobby@192.168.1.10:/home/bobby/mydir bobby@192.168.1.20:/tmp bobby@192.168.1.20's password: Could not chdir to home directory /home/bobby: No such file or directory bobby@192.168.1.10's password:
5) SCP con un número de puerto
Supongamos que el puerto SSH de la máquina remota es 2200 (en lugar del puerto SSH 22 predeterminado). Entonces necesitas ejecutar el comando scp con -P
opción de la siguiente manera:
$ scp –P 2200 -r test_folder test@192.168.1.26:/home/test/
6) Scp Command Copiar varios archivos (una línea)
Puede copiar varios archivos a la vez usando el comando scp como se muestra a continuación sin tener que ejecutarlo varias veces
$ scp file1.txt file2.txt file3.txt bobby@192.168.1.10:/home/bobby
7) Copie archivos sin cambiar la marca de tiempo de los archivos
En algún momento, es posible que desee conservar la marca de tiempo de los archivos originales. Pero cuando los lleva a una ubicación diferente de la forma normal, la marca de tiempo se modifica. Pero con -p
opción puede copiar los archivos con las mismas marcas de tiempo originales, como se muestra a continuación.
$ scp -p file1.txt bobby@192.168.1.10:/home/bobby
8) Archivos de copia SCP rápidos
Por defecto, Scp usa AES-128 para encriptar datos ya que la seguridad de esto es alta. Pero la desventaja de esto es que ralentiza un poco el proceso de copia de archivos. Pero si desea copiar archivos de forma segura más rápido, puede usar Blowfish o RC4 como se muestra a continuación.
$ scp -c blowfish bobby@192.168.1.10:/home/user/file .
$ scp -c arcfour bobby@192.168.1.10:/home/user/file .
9) Scp Command con mayor seguridad
Si es la seguridad que busca, puede copiar archivos de una manera más segura usando 3DES. Pero esto ralentizará el proceso un poco más.
$ scp -c 3des bobby@192.168.1.10:/home/user/file .
10) Comando Scp con ancho de banda limitado
Al usar el comando scp, puede limitar su ancho de banda como se muestra a continuación (aquí el ancho de banda se especifica en Kbit / s).
$ scp -l50 bobby@192.168.1.10:/home/user/file .
11) Comando Scp con IPV4 e IPV6
Si es necesario, puede forzar el comando scp para usar IPV4 o IPV6 como se muestra a continuación
$ scp -4 bobby@192.168.1.10:/home/user/file .
$ scp -6 bobby@192.168.1.10:/home/user/file .
Conclusión
Espero que haya disfrutado leyendo este tutorial sobre cómo usar el comando scp con ejemplos. Recomendaría referir página de manual del comando scp para más información.