Cómo usar el comando scp en Linux

los scp El comando hace que copiar archivos entre computadoras Linux sea fácil y seguro. Utiliza seguridad SSH, pero lo mejor de todo es que es simple. si puedes usar cp puedes usar scp .

El protocolo de copia segura y scp

Definamos un par de términos: hay SCP y hay scp . El SCP en mayúsculas representa el Protocolo de copia segura . las minúsculas scp significa seguro cp . En otras palabras, SCP es un protocolo y scp es un programa

scp fue diseñado para ser un medio seguro para copiar archivos entre computadoras Linux remotas. Utiliza SSH para establecer conexiones seguras. SSH, o shell seguro, es un protocolo de red criptográfico que a menudo se usa para acceder e iniciar sesión en computadoras Linux remotas. En las distribuciones de Linux, OpenSSH proporciona la funcionalidad SSH.

SCP es algo antiguo, y se han expresado preocupaciones sobre su uso en la actualidad. Desde la versión 8.8 de OpenSSH, SCP se considera obsoleto. Implementaciones modernas de scp predeterminado a usar el Protocolo seguro de transferencia de archivos de forma predeterminada. SSH todavía se usa para la conexión segura, pero las transferencias de archivos son manejadas por SFTP. Todo esto es invisible y ocurre mágicamente debajo del capó, y el scp la sintaxis se ha mantenido igual.

los rsync Se prefiere el programa a scp pero es posible que encuentre una computadora que no tenga rsync instalado, y para el cual no tiene privilegios de root, lo que significa que no puede continuar e instalarlo. Para copiar archivos de una computadora a otra en una red autónoma, scp esta perfectamente bien Para scp para que funcione, debe tener SSH ejecutándose en todas las computadoras a las que copiará y desde las cuales.


Para ver la versión de OpenSSH instalada en su computadora, escriba:

                      ssh -V
                    

Copiar un solo archivo

como el estándar cp dominio, scp copia archivos desde la ubicación de origen a la ubicación de destino. Para copiar un archivo a una computadora remota, debe conocer la dirección IP o el nombre de red de la computadora remota. También debe tener las credenciales de una cuenta de usuario que tenga privilegios de escritura para la ubicación a la que está enviando el archivo.

Para enviar un archivo llamado “sample.txt” a una computadora llamada “fedora-34” en la red local, la sintaxis es:

                      scp ./sample.txt [email protected]:/home/dave/Downloads/
                    

Copiar un solo archivo a una computadora remota

El comando está compuesto por:

  • scp : El comando scp
  • ./muestra.txt : El archivo que vamos a enviar. Esto está en el directorio actual.
  • [email protected] : La cuenta de usuario en la computadora remota a la que vamos a enviar el archivo.
  • fedora-34.local : El nombre de red de la computadora remota.
  • :/home/dave/Descargas/ : La ubicación para copiar el archivo en la computadora remota. Tenga en cuenta los dos puntos “:” que separan el nombre de la computadora y la ruta.

Se le pedirá que ingrese la contraseña de la cuenta en la computadora remota y luego se copiará el archivo.

Si desea que el archivo tenga un nombre diferente en la computadora remota, puede agregar un nombre de archivo a la ruta de destino. Para copiar el mismo archivo y llamarlo “diferente-archivo.txt”, use esta sintaxis:

                      scp ./sample.txt [email protected]:/home/dave/Downloads/different-file.txt
                    

Copiar un solo archivo a una computadora remota con un nuevo nombre

los scp El comando sobrescribirá silenciosamente los archivos existentes, así que tenga cuidado cuando copie archivos. Si ya existe un archivo en la computadora de destino con el mismo nombre que el archivo que está copiando, se sobrescribirá y se perderá.


Si la computadora de destino no está usando el puerto SSH predeterminado de 22, puede usar el -P (número de puerto) opción para proporcionar el número de puerto apropiado.

Recuperación de un solo archivo

Para copiar un archivo desde un servidor remoto, simplemente coloque el servidor remoto como origen y coloque la ruta local donde desea copiar el archivo como destino. Vamos a copiar un archivo llamado “plan de desarrollo.md” desde la computadora remota al directorio actual en la computadora local.

                      scp [email protected]:/home/dave/Downloads/development-plan.md .
                    

Copiar un solo archivo desde un servidor remoto al directorio actual de la computadora local

Si agrega un nombre de archivo a la ruta local, el archivo se copia y recibe ese nombre.

                      scp [email protected]:/home/dave/Downloads/development-plan.md ./dp-1.md
                    

Copiar un solo archivo desde un servidor remoto al directorio actual de la computadora local con un nuevo nombre

El archivo se copia pero se renombra a nuestro nombre de archivo especificado.

                      ls -hl *.md
                    

Copiar varios archivos

Copiar varios archivos en cualquier dirección es fácil. Puede enumerar tantos archivos de origen como desee. Aquí, estamos copiando dos archivos de rebajas y un archivo CSV.

                      scp ./dp-1.md ./dp-2.md ./dp-3.csv [email protected]:/home/dave/Downloads/
                    

Copiar múltiples archivos con nombre a una computadora remota

Los tres archivos se copian en la computadora remota. También puede utilizar comodines. Este comando hace exactamente lo mismo que el último comando.

                      scp ./dp. [email protected]:/home/dave/Downloads/
                    

Copiar varios archivos a una computadora remota usando comodines en el nombre del archivo

Copia recursiva de directorios

los -r La opción (recursiva) le permite copiar árboles de directorios completos con un solo comando. Colocamos dos archivos en un directorio llamado “datos” y creamos un directorio llamado “CSV” dentro del directorio “datos”. Colocamos un archivo CSV en el directorio “data/CSV”.


Este comando copia los archivos y recrea la estructura de directorios en la computadora remota.

                      scp -r ./data [email protected]:/home/dave/Downloads/
                    

Copiar un árbol de directorios a una computadora remota

Copia de archivos entre servidores remotos

Incluso puedes instruir scp para copiar archivos de un servidor remoto a otro. La sintaxis es bastante simple. Usted proporciona el nombre de cuenta y la dirección de red del servidor de origen y el nombre de cuenta y la dirección de red del servidor de destino. Los archivos se copian desde el servidor de origen y se copian en la ubicación del servidor de destino.

Aunque la sintaxis es simple, asegurarse de que todo lo demás esté en su lugar requiere un poco más de reflexión. Obviamente, la ubicación en la que intenta copiar los archivos en el servidor remoto debe ser accesible para la cuenta de usuario que especifique en la línea de comando. Y esa cuenta de usuario debe tener permisos de escritura en esa ubicación.

Un requisito previo más sutil es que el acceso SSH debe configurarse entre su computadora local y la computadora de origen, y también entre los servidores de origen y de destino. Asegúrese de que puede usar SSH para iniciar sesión en el servidor de destino desde el servidor de origen. Si no puedes hacer eso, scp no se podrá conectar.

La configuración de claves SSH para que pueda usar el acceso autenticado pero sin contraseña es, con mucho, el método preferido. El uso de contraseñas se vuelve complicado muy rápidamente y, debido a que se le solicita la contraseña para cada cuenta de usuario, le impide automatizar completamente el proceso con un script.


Configuramos claves SSH para las cuentas de usuario que usamos en cada servidor remoto. Esto proporcionó acceso SSH sin problemas al otro servidor, para esos dos usuarios. Esto nos permite transferir archivos en cualquier dirección, utilizando esas dos cuentas de usuario.

Para copiar archivos de la cuenta de usuario “davem” en una computadora Manjaro a la cuenta “dave” en una Fedora computadora, a través de un scp comando emitido desde nuestra computadora Ubuntu local, la sintaxis es:

                      scp [email protected]:/home/davem/man. [email protected]ra-34.local:/home/dave/
                    

Copiar archivos de un servidor remoto a otro.

Regresamos silenciosamente a la línea de comando. No hay indicios de que haya pasado algo. Partiendo de la premisa de que la ausencia de noticias es una buena noticia, scp solo informa sobre errores para esta copia remota a remota. Al comprobar el Fedora computadora podemos ver que los archivos de la computadora Manjaro han sido copiados y recibidos.

Archivos de la computadora Manjaro recibidos en el Fedora computadora

De manera predeterminada, los archivos se copian directamente desde la computadora de origen a la computadora de destino. Puede anular esto usando el -3 (tres vías) opción.

Con esta opción, los archivos se transfieren desde el destino a la fuente, a través de su computadora local. Para que eso suceda, debe haber un acceso SSH sin problemas desde su computadora local a la computadora de destino.

                      scp -3 [email protected]:/home/davem/man. [email protected]:/home/dave/
                    

Copiar archivos de un servidor remoto a otro, a través de la computadora local

Todavía no hay indicios de que haya sucedido algo, incluso cuando se canalizan los archivos a través de su computadora local. La prueba del pudín, por supuesto, es verificar la computadora de destino.

Otras opciones

los -p (preservar los atributos del archivo) mantendrá la creación del archivo original, la propiedad y las marcas de acceso en los archivos transferidos. Tendrán los mismos metadatos que los archivos originales en la computadora de origen.


Si ve mensajes de error, intente repetir el comando y use el -v (verbose) para ver información detallada sobre el intento de transferencia. Debería poder detectar el punto de falla en la salida.

los -C La opción (comprimir) comprime los archivos a medida que se copian y los descomprime cuando se reciben. Esto es algo que se remonta a la era de las comunicaciones lentas por módem entre computadoras. Reducir el tamaño de la carga útil podría reducir los tiempos de transmisión.

Hoy en día, es probable que el tiempo necesario para comprimir y descomprimir los archivos sea mayor que la diferencia entre las transmisiones comprimidas y sin comprimir. Pero porque scp se usa mejor para copiar archivos entre computadoras en la misma LAN, la velocidad de transmisión no debería ser una gran preocupación.

Cómo hacer una copia de seguridad de su sistema Linux con rsync

Related Posts