#Fixed 7: Copiar archivos vía FTP desde una VPS a un hosting compartido

Manu Pijierro
2 min readNov 6, 2018

--

El fin de semana pasado me encontré con una tarea que a priori parecía sencilla pero que no sabía muy bien como solucionar.

El problema era el siguiente:

  • En una VPS con una Debian corriendo, hay una aplicación con PHP a la cual los usuarios suben archivos.
  • Tenía que hacer una copia de seguridad de esos archivos y guardarlos en un hosting compartido, de esos que apenas te dan opciones de configuración y mucho menos una consola de comandos con la posibilidad de instalar, por ejemplo, rsync.
  • En el hosting compartido si tenía la posibilidad de configurar una carpeta y acceder a ella vía FTP.

Es decir, no quedaba otra que buscar la opción de enviar los archivos al hosting compartido vía FTP. Así que me puse a googlear y llegué a esta página: How to upload a directory recursively to an FTP server by just using ftp or lftp? gracias a la cual me enteré que hay un comando llamado lftp que facilita mucho toda esta labor. Aquí puedes acceder a la página oficial de lftp. Lo instalé con apt:

sudo apt-get install lftp

Posteriormente lo probé hasta que di con la siguiente configuración para que funcionara correctamente e hiciera lo que yo quería:

lftp -e "mirror -R CARPETA_ORIGEN CARPETA_DESTINO" -u USUARIO_FTP,PASSWORD_USUARIO HOST

La opción mirror es interesante porque nos mantiene sincronizada las dos carpetas copiando únicamente lo diferente.

Con esto en principio podía copiar archivos pero tuve otro problema. El FTP necesitaba confirmar un certificado así que me puse a googlear otra vez y llegué a esta página: How to avoid lftp Certificate verification error? en la cual entre unas respuestas y otras, al final, conseguí evitar tener que confirmar el certificado manualmente cada vez que lanzaba el comando lftp para subir archivos.

Solución para subir archivos vía FTP a un hosting compartido desde una VPS

Después de cambiar la forma de utilizar lftp, conseguí evitar tener que confirmar el certificado y tener que escribir la clave del usuario. El comando es el siguiente:

lftp ftp://USUARIO_FTP:PASSWORD_USUARIO@HOST -e "set ftp:ssl-allow no; mirror -R CARPETA_ORIGEN CARPETA_DESTINO ; quit"

Y ya, para redondear, he puesto este comando en un cron que se ejecuta a las 3 a.m. para tener automatizado mi mi rudimentario a la par que efectivo mi sistema de copia de seguridad de archivos vía FTP.

Esto es todo. Ya sabes, si conoces alguna otra forma mejor y sobre todo más sencilla para llevar a cabo este tipo de tareas y además te apetece compartirlas, no tienes más que dejar un comentario. Gracias.

¡Chimpún!

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response