GNU/Linux >> Tutoriales Linux >  >> Linux

4 formas de transferir archivos y directorios en Linux

Como administrador del sistema Linux, hay muchas formas diferentes de transferir archivos , de forma segura o no, entre dos hosts diferentes.

Durante su trabajo diario, es posible que se le pida que realice algunas grandes transferencias entre dos servidores distantes.

Es posible que deba hacer una copia de seguridad de una base de datos completa en una unidad compartida segura, o simplemente puede querer obtener un archivo remoto en su sistema.

Como consecuencia, desea transferir archivos , pero desea hacerlo de una manera muy segura.

Afortunadamente para ti, hay muchos comandos diferentes que puedes usar para lograrlo.

En este tutorial, veremos las diferentes formas de transferir archivos entre hosts en Linux usando ftp, sftp, scp o rsync.

¿Listo?

Estas son todas las formas de transferir archivos en Linux:

Transferir archivos en Linux usando ftp

La primera forma de transferir archivos en Linux es usar el ftp comando .

De forma predeterminada, el protocolo FTP utiliza el protocolo TCP, que es no seguro. .

Significa que si alguien rastreara datos o paquetes enviados a través de la red, podría ver lo que está enviando a hosts remotos.

En la mayoría de los casos, esto no es algo que desee para sus transferencias de archivos, especialmente cuando se realizan a través de Internet.

Sin embargo, seguiremos proporcionando la sintaxis para el comando ftp, ya que puede ser útil para simplificar su uso en redes locales.

De forma predeterminada, es posible que su distribución no tenga instalado el comando ftp de forma predeterminada.

Para verificar si ftp está instalado en su host, puede ejecutar el siguiente comando

$ command -v ftp

Si no se le proporcionan salidas, significa que el ftp no está disponible en su sistema.

Instalación de ftp en distribuciones basadas en Debian

Para instalarlo en Debian distribuciones basadas en, ejecute el siguiente comando

Para instalar nuevos paquetes, debe tener privilegios sudo en su distribución Debian

$ sudo apt-get install ftp

Después de la instalación, ejecute el comando "comando" nuevamente para asegurarse de que esté correctamente disponible en su sistema.

$ command -v ftp
/usr/bin/ftp

Instalación de ftp en distribuciones basadas en Red Hat

Para instalar ftp en distribuciones basadas en Red Hat, debe ejecutar los siguientes comandos

Para instalar nuevos paquetes en RHEL o CentOS , debe tener privilegios sudo en su distribución de CentOS.

$ sudo yum install ftp

Nuevamente, ejecute el comando "comando" para verificar que sus paquetes se instalaron correctamente

$ command -v ftp
/usr/bin/ftp

Conéctese a hosts remotos con ftp

Para conectarse a hosts remotos usando el comando ftp, debe usar la siguiente sintaxis

$ ftp <destination_ip>

Al conectarse, esto es lo que debería ver si se conecta a un servidor FTP no protegido.

Escriba el nombre de usuario que se le asignó para conectarse a este servidor FTP.

Se le pedirá que ingrese su contraseña. Si las credenciales son correctas, debería poder iniciar sesión directamente en su servidor FTP.

Descargar archivos en Linux usando ftp

Cuando está conectado a su servidor FTP, hay muchas formas de interactuar con él.

En primer lugar, haga clic en "? ” para ver todos los comandos disponibles para usted.

Como puede ver, los comandos disponibles son prácticamente idénticos a los que encontraría en un sistema Linux estándar.

De manera predeterminada, en su servidor FTP, se le otorgará un acceso de shell FTP directamente a su directorio de inicio.

Para ver todos los archivos disponibles en el directorio actual, ejecute el siguiente comando

$ ls

Como puede ver aquí, estoy enumerando las entradas de mi directorio de inicio.

Para navegar en una de las carpetas, presione el comando estándar "cd" con la ruta a la que desea navegar.

Para descargar un archivo del directorio actual, debe ejecutar el siguiente comando

$ get <file>

El local se copiará en su directorio de trabajo actual en la máquina local, es decir, la ruta desde donde inició el comando ftp en primer lugar.

Como nota al margen, si desea descargar varios archivos de sus hosts remotos, debe usar el comando "mget" con la siguiente sintaxis

$ mget <file1> <file2> ... <filen>

¡Felicidades!

Transfirió con éxito un archivo desde su máquina distante a su máquina local usando FTP.

Subir archivos en Linux usando ftp

Con FTP, puede descargar archivos de sus servidores remotos, pero también puede cargar archivos en sus servidores remotos.

Para cargar archivos usando ftp, debe usar el comando "poner" con la siguiente sintaxis

$ put <file>

Su archivo ahora debería estar accesible en su host remoto, en el directorio de inicio del usuario que está utilizando para transferir sus archivos.

$ ls /home/<user>
file.txt

De manera similar, si desea cargar varios archivos en sus hosts remotos, puede usar "mput" de esta manera

$ mput <file1> <file2> ... <filen>

¡Felicitaciones!

Transfirió con éxito archivos desde su host local a su host remoto mediante ftp.

Transferir archivos usando sftp en Linux

Una forma más segura de transferir archivos entre dos hosts es usar el comando sftp.

El comando sftp, que significa “Protocolo seguro de transferencia de archivos “, es una forma de transferir archivos entre dos hosts con tráfico encriptado.

Como consecuencia, incluso si alguien capta el tráfico entre usted y el host remoto, no podrá descifrarlo sin tener acceso a sus claves SSH.

Al usar el comando sftp, el host al que intenta descargar o cargar archivos debe estar equipado con un servidor SSH.

Si está utilizando un servidor OpenSSH en su host remoto, podrá conectarse a él para realizar transferencias de archivos.

De forma predeterminada, sftp debería estar disponible en su sistema, pero puede verificarlo ejecutando el siguiente comando.

$ command -v sftp
/usr/bin/sftp

Conéctese a hosts remotos usando sftp

Para conectarse a hosts remotos usando sftp, debe usar la siguiente sintaxis

$ sftp <destination_ip>

De manera predeterminada, si es la primera vez que se conecta a un host remoto, se le pedirá que agregue el host a la lista de hosts confiables de su sistema (ubicado en /home/user/.ssh/known_hosts de manera predeterminada)

Ahora que está conectado a su servidor SSH remoto, la sintaxis para navegar o transferir archivos es la misma que la del comando ftp estándar.

Descargar archivos en Linux usando sftp

En primer lugar, puede presionar "?" para ver todos los comandos disponibles en el servidor SSH.

En primer lugar, presione el comando "ls" para ver todos los archivos y carpetas disponibles en el sistema remoto.

$ ls

Como puede ver, este comando enumerará toda la carpeta en la que estoy actualmente (que es el directorio de inicio en este caso).

Para navegar a una carpeta, presione el comando "cd" que normalmente funcionaría en un servidor FTP estándar.

$ cd <path>

Para descargar un archivo en un servidor SFTP, use el comando "get" usando esta sintaxis

$ get <file>

El archivo se copiará del directorio remoto actual al directorio local en el que inició el comando sftp.

¡Felicidades! Transfirió correctamente los archivos desde su host remoto a su máquina local.

Subir archivos en Linux usando sftp

Alternativamente, puede transferir archivos entre su máquina local y su host remoto.

Para transferir archivos usando sftp, debe usar el comando "poner".

$ put <file>

Si enumera las entradas de su directorio remoto, debería poder ver su archivo.

$ sftp> ls -l

¡Felicitaciones!

Transfirió con éxito archivos desde su host local a su máquina remota.

Transferir archivos en Linux usando scp

Una de las otras formas de transferir archivos entre dos hosts en Linux es usar el comando scp.

$ scp <option> <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

El comando scp establece una conexión segura entre los dos hosts y utiliza el puerto SSH estándar para transferir archivos.

Como consecuencia, necesitará tener un servidor SSH en su host de destino para transferir el archivo.

Por ejemplo, para transferir un archivo local desde su máquina actual a un host remoto, ejecutaría el siguiente comando

$ scp file [email protected]:file

De forma predeterminada, si no especifica una ruta absoluta, los archivos se copiarán directamente en el directorio de inicio del usuario con el que se está conectando.

Ahora, si compruebo los archivos en mi host remoto, el archivo debería estar en el directorio de inicio del usuario.

Transferir directorios en Linux usando scp

Con el comando scp, también es posible transferir directorios completos al host de destino.

Para copiar directorios, debe especificar la opción "-r".

Tomemos el ejemplo de una carpeta llamada "directorio" con 3 archivos. Para copiarlos, debe usar el siguiente comando

$ scp -r directory [email protected]:.

Si inspecciona los directorios en su host de destino, debería poder ver su directorio transferido.

Tenga en cuenta que si especifica un directorio personalizado en el destino, se creará si no existe de forma predeterminada.

Transferencia de archivos entre dos hosts remotos

En el ejemplo anterior, usamos un host local con un host distante al que contactamos usando su dirección IP.

Ahora, es posible que deba transferir archivos entre dos hosts remotos ubicados en dos direcciones IP diferentes.

Para transferir archivos entre esos dos hosts, ejecutará el siguiente comando

$ scp <option> <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Por ejemplo, llevaría a

$ scp [email protected]:file [email protected]:file

Tenga en cuenta que, en este caso, necesitará dos servidores SSH en ambas instancias; de lo contrario, no funcionará.

Usando scp con una barra de progreso

Para mostrar las estadísticas del proceso scp, debe especificar la opción "-v" (que significa detallado)

$ scp -v <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Transferir archivos en Linux usando rsync

Finalmente, la última forma de transferir archivos entre dos hosts en Linux es usar el comando rsync.

El comando rsync también usa un protocolo seguro ya que se basa en el protocolo SSH para transferir datos. Se puede utilizar en una amplia variedad de formas, pero en este tutorial nos centraremos en las transferencias de archivos.

Los comandos scp y rsync son muy similares, pero rsync ofrece muchas más funcionalidades para la transferencia de archivos. Puede elegir, por ejemplo, incluir ciertos archivos y excluir otros. También puede optar por conservar los permisos o los enlaces físicos durante una copia.

En general, rsync es un superconjunto del comando scp.

De manera predeterminada, es posible que el comando rsync no esté instalado en su sistema. Para instalarlo, siga esas instrucciones.

Instalar rsync en distribuciones basadas en Debian

Para instalar rsync, será un usuario sudo en su host.

Para instalar rsync, ejecute el siguiente comando

$ sudo apt-get install rsync

Finalmente, ejecute el comando para asegurarse de que se instaló correctamente.

$ rsync --help

Instalación de rsync en distribuciones basadas en Red Hat

Para instalar rsync en RHEL o en CentOS, ejecute el siguiente comando

$ sudo yum install rsync

Del mismo modo, ejecute la opción de ayuda para asegurarse de que se instaló correctamente.

$ rsync --help

Uso de rsync para transferir archivos en Linux

Ahora que rsync está correctamente instalado en su host, puede usarlo de la siguiente manera

$ rsync <option> <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Por ejemplo, para transferir archivos desde un host local a una máquina remota, ejecutaría el siguiente comando

$ rsync file [email protected]:file

De manera similar, para copiar archivos desde su host remoto a su máquina local, ejecutaría

$ rsync [email protected]:file file

Uso de rsync para transferir directorios en Linux

Con rsync, también puede transferir directorios completos desde un host local a uno remoto.

Solo tiene que agregar la opción "-r" a su sintaxis actual

$ rsync -r <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Al copiar directorios, hay una regla que debe tener en cuenta.

Al especificar el directorio de origen, tiene la opción de agregar una barra inclinada al final para copiar el contenido del directorio y no el directorio en sí.

Para ilustrarlo, digamos que tiene un directorio llamado "directorio", que desea transferir a un directorio remoto llamado "directorio" en su máquina remota.

Usando una sintaxis final, esto es lo que obtendría en su host remoto

$ rsync directory/ [email protected]:directory

En el host remoto

/home/user/
├── directory
    ├── file1
    ├── file2
    ├── file3

Sin embargo, si escribe rsync sin una barra inclinada al final, es decir,

$ rsync directory [email protected]:directory

En el host remoto

/home/user/
├── directory
    ├── directory
        ├── file1
        ├── file2
        ├── file3

Como consecuencia, es posible que desee incluir barras inclinadas al final de forma predeterminada al copiar archivos de un host a otro para evitar nombres de directorio duplicados.

Usando rsync con la barra de progreso

Una forma muy práctica de usar rsync es tener una barra de progreso asociada para transferencias largas.

Para tener una barra de progreso al usar rsync, debe usar la opción "–progress" (para lectura humana)

$ rsync --progress <source_user>@<source_host>:<file> <destination_user>@<destination_host>:<file>

Conclusión

En este tutorial, aprendió cómo puede transferir archivos fácilmente en Linux usando el comando ftp, los comandos sftp, scp o rsync.

Viste las diferencias entre esos comandos y cómo se pueden usar para transferir directorios completos.


Linux
  1. Encuentra archivos y directorios en Linux con el comando de búsqueda

  2. Copiar archivos y directorios en Linux

  3. Cómo transferir archivos entre servidores en Linux usando SCP y FTP

  4. Cómo eliminar archivos y directorios en la línea de comandos de Linux [Tutorial para principiantes]

  5. Linux Eliminar archivos y directorios

Cómo comprimir archivos y directorios en Linux

Cómo mover archivos y directorios en Linux (comando mv)

Comando Rm en Linux

3 formas de encontrar archivos y directorios en Linux

Encuentre archivos y directorios en Linux fácilmente

Conceptos básicos de la línea de comandos de Linux:trabajar con archivos y directorios