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 (el punto indica el directorio actual) en el sistema local.
$ scp [email protected]:/home/bobby/file_for_copy.txt .
[email protected]'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, recursivamente, por lo que todo el contenido dentro del directorio también se puede copiar
$ scp -r [email protected]:/home/bobby/dir_for_copy .
[email protected]'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 de host local a remoto
La opción -v de scp imprime una salida detallada, que luego realiza el scp y también imprime mensajes de depuración en su progreso. En el siguiente ejemplo, se utiliza la opción -v. Aquí, un archivo local se copia en el host remoto.
$ scp -v examples.desktop [email protected]:/home/bobby
De manera similar, un directorio se puede copiar con -r
opción. En el siguiente ejemplo, un directorio llamado jvm se copia en el host remoto.
$ scp -r jvm [email protected]:/tmp
[email protected]'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. El -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 salida detallada.
$ scp -3 -v [email protected]:/home/bobby/myfile1.txt [email protected]:/tmp
Del mismo modo, los directorios se pueden copiar entre dos máquinas remotas con la opción -r.
$ scp -3 -r [email protected]:/home/bobby/mydir [email protected]:/tmp
[email protected]'s password:
Could not chdir to home directory /home/bobby: No such file or directory
[email protected]'s password:
5) SCP con número de puerto
Supongamos que el puerto SSH de la máquina remota es 2200 (en lugar del puerto SSH predeterminado 22). Luego debe ejecutar el comando scp con -P
opción de la siguiente manera:
$ scp –P 2200 -r test_folder [email protected]:/home/test/
6) Comando Scp Copie 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 [email protected]:/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 envía a una ubicación diferente de la manera normal, la marca de tiempo se modifica. Pero con -p
puede copiar los archivos con las mismas marcas de tiempo originales, como se muestra a continuación.
$ scp -p file1.txt [email protected]:/home/bobby
8) Copia rápida de archivos SCP
De forma predeterminada, Scp utiliza AES-128 para cifrar los 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 y más rápida, puede usar Blowfish o RC4 como se indica a continuación.
$ scp -c blowfish [email protected]:/home/user/file .
$ scp -c arcfour [email protected]:/home/user/file .
9) Comando Scp con mayor seguridad
Si es la seguridad que buscas, puedes copiar archivos de forma más segura usando 3DES. Pero esto ralentizará un poco más el proceso.
$ scp -c 3des [email protected]:/home/user/file .
10) Comando Scp con ancho de banda limitado
Al usar el comando scp, puede limitar su ancho de banda como se indica a continuación (aquí el ancho de banda se especifica en Kbit/s).
$ scp -l50 [email protected]:/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 [email protected]:/home/user/file .
$ scp -6 [email protected]:/home/user/file .
Conclusión
Espero que haya disfrutado leyendo este tutorial sobre cómo usar el comando scp con ejemplos. Recomendaría consultar la página de manual del comando scp para obtener más información.