Quieres descargar o mover archivos con la terminal de Linux de un servidor a otro? O quieres guardar una copia de seguridad de tu página web en tu PC local, usando la consola? Entonces sigue leyendo porque aquí te demostraré cómo usar FTP sin un cliente de interfaz gráfica!
Instalación de NCFTP
Antes de comenzar a usar los comandos de este tutorial necesitas tener instalado la herramienta NCFTP en tu PC.
Si usas Ubuntu o Debian, ejecuta este comando como usuario root:
apt-get install ncftp
y confirma la instalación presionando [Enter].
Si prefieres el sistema CentOS, entra en éste enlace para instalar el repositorio necesario para tu version de CentOS (5.x, 6.x o 7.x). Después de instalar el repositorio de software ejecuta:
yum update yum install ncftp
Confirma la instalación escribiendo “y” y presionando [Enter].
Ya está instalada la aplicación NCFTP en tu Computadora? A usarla!
En el caso que quieras descargar un sitio web, una carpeta completa o un archivo determinado mediante FTP usando la consola o terminal de Linux, usa el siguiente comando:
ncftpget -R -v -u <User> -p '<Password>' <Hostname> <Local_Path> <Remote_Path>
Reemplaza:
- <User> con el nombre de usuario FTP del servidor remoto.
- <Password> con la contraseña del usuario FTP (entre comillas).
- <Hostname> con la dirección o IP del servidor remoto.
- <Local_Path> con un directorio local existente al cual quieres descargar los archivos. Ejemplo: “/var/www/html” (sin comillas).
- <Remote_Path> con un directorio en el servidor remoto que quieres descargar. Ejemplo: “/public_html/” o sólo “/” (sin comillas).
Presiona la tecla [Enter] y espera… La transferencia puede tardar un poco para empezar – más si son muchos archivos que quieres transferir.
En el caso que quieras subir un sitio web, una carpeta completa o un archivo determinado, usa el siguiente comando:
ncftpput -R -v -u <User> -p '<Password>' <Hostname> <Local_Path> <Remote_Path>
Reemplaza <User>, <Password>, <Hostname>, <Local_Path> y <Remote_Path> con los mismos datos que en el comando anterior.
Presiona la tecla [Enter] y espera…
Información adicional – Parámetros de comando
El parámetro “-R” de “Recursive” sirve para descargar o subir las carpetas con todos sus contenidos, ya sean más subcarpetas o archivos.
El parámetro “-v” de “verbose” sirve para mostrar el progreso de la transferencia de archivos. No es necesario usar éste parámetro.
Recomendación
Si usas estos comandos para mover carpetas y archivos de un servidor remoto a otro servidor remoto utilizando SSH y si la cantidad de archivos a transferir es muy grande, usa la herramienta screen para hacer la transferencia.
Para ello, crea un archivo temporal “ftp.sh” en tu servidor (no importa en qué carpeta esté) con el comando de ncftpget o ncftpput que quieres ejecutar, modifica los permisos del archivo para poder ejecutarlo (chmod +x ftp.sh) y ejecuta el archivo con screen:
screen –mS ftp ./ftp.sh
Ahora, si de repente se interrumpe la conexión entre tu PC local y el servidor remoto, la transferencia no se cancelará sino que seguirá hasta finalizar.
Espero que te haya servido en algo éste artículo 😉 Si tienes preguntas o algo que decir me encantaría si te tomaras el tiempo dejar un comentario aquí abajo. Además sería genial si podrías votar por artículo y compartirlo!
Hola Jens,
Gracias por compartir tus conocimientos lo primero.
Tengo una duda: si quiero llevar un fichero de una maquina windows a una linux y necesito que se grabe en esta ultima con permisos 777 ¿como puedo utilizar el chmod?
Un saludo
Hola Nat,
Con ‘chmod – R 777 ./fichero’ puedes dar todos los derechos al fichero y todo su contenido (-R).
Saludos, Jens