Saltar al contenido
Script 2024-05-27 7 min de lectura

Automatización de Backups hacia la Nube con FTP: Guía Completa

Perder información crítica por una falla de disco, un ataque de ransomware o un simple error humano es uno de los escenarios más costosos —y más evitables— en la administración de sistemas. En esta guía te mostramos cómo automatizar por completo tus copias de seguridad hacia un servidor FTP remoto usando un script de Windows: comprimir la carpeta, subirla con fecha y hora en el nombre, y limpiar el archivo temporal, todo sin intervención humana. El método no se limita a sitios web: sirve para respaldar bases de datos, carpetas de proyectos, documentos contables o cualquier conjunto de archivos que no puedas permitirte perder.

Automatización de Backups hacia la Nube con FTP: Guía Completa
#Script#Backup#FTP#Automatización
J John Coveña
John Coveña
Fundador de Terranode · Infraestructura y redes

¿Por qué son indispensables las copias de seguridad?

Una copia de seguridad (o backup) es, en esencia, un seguro contra la pérdida de información. Los escenarios en los que un backup reciente marca la diferencia entre "problema menor" y "catástrofe" son más comunes de lo que parece:

  • Fallas de hardware: discos duros y SSD tienen una vida útil finita; todos fallan eventualmente.
  • Ataques de malware o ransomware: si tus archivos se cifran o corrompen, un backup externo es la única salida sin pagar rescate.
  • Errores humanos: un DELETE sin WHERE, un archivo sobrescrito por accidente, una carpeta borrada sin querer.
  • Desastres físicos: incendios, inundaciones o robos que afectan al equipo donde vive tu única copia.

La regla de oro en la industria es la estrategia 3-2-1: mantener al menos 3 copias de tus datos, en 2 medios distintos, con 1 copia fuera del sitio (offsite). El backup vía FTP hacia la nube que armamos en este artículo cubre precisamente ese último punto.

Qué hace exactamente el script de automatización

En lugar de copiar archivos manualmente cada semana (algo que, seamos honestos, se termina olvidando), automatizamos todo el proceso con un script que ejecuta tres tareas en secuencia:

  • Comprimir una carpeta local en un único archivo .zip, con la fecha y hora en el nombre para poder identificar cada respaldo.
  • Subir ese archivo comprimido a un servidor FTP remoto de forma desatendida.
  • Eliminar el .zip local una vez confirmada la subida, para no acumular espacio en disco.

Este flujo se puede programar con el Programador de Tareas de Windows para que corra todos los días, cada semana, o con la frecuencia que definas, sin que nadie tenga que intervenir manualmente.

Requisitos previos

Antes de usar el script necesitas tener instalado lo siguiente:

  • 7-Zip, en la ruta por defecto C:\Program Files\7-Zip\7z.exe (puedes descargarlo gratis desde el sitio oficial).
  • Acceso a un servidor FTP con usuario y contraseña válidos. Puede ser un NAS de la oficina, el hosting donde ya alojas tu sitio, o un VPS usado como almacén remoto: para esta tarea solo necesita disco y un servicio FTP o SFTP.
  • Permisos de escritura sobre la carpeta que quieres respaldar y sobre la carpeta destino del .zip temporal.

El script completo

Guarda el siguiente contenido como backup_ftp.bat. Antes de ejecutarlo, ajusta las variables BACKUP, FTPHOST, FTPUSER y FTPPASS con tus propios datos:

batch
:: Script de backup automático hacia FTP
:: Realizado por Terranode - Requiere 7-Zip instalado previamente

@echo off

:: Definir variables
set FECHA=%date:~6,4%-%date:~3,2%-%date:~0,2%
set HORA=%time:~0,2%-%time:~3,2%
set BACKUP=C:\Datos\BACKUP
set ZIPFILE=backup_%FECHA%_%HORA%.zip
set FTPHOST=10.10.10.15
set FTPUSER=terranode
set FTPPASS=TuClaveSegura123#

:: Comprimir carpeta en archivo zip
echo Comprimiendo archivos...
"C:\Program Files\7-Zip\7z.exe" a -tzip "%BACKUP%\%ZIPFILE%" "%BACKUP%\*"

:: Subir archivo al servidor FTP
echo Subiendo archivo al servidor FTP...
echo user %FTPUSER%>%TEMP%\ftpcmd.dat
echo %FTPPASS%>>%TEMP%\ftpcmd.dat
echo put "%BACKUP%\%ZIPFILE%" "backup/%ZIPFILE%">>%TEMP%\ftpcmd.dat
echo quit>>%TEMP%\ftpcmd.dat
ftp -n -s:%TEMP%\ftpcmd.dat %FTPHOST%
del %TEMP%\ftpcmd.dat

:: Eliminar archivo zip local
echo Eliminando archivo zip local...
del "%BACKUP%\%ZIPFILE%"

echo Proceso de backup completado correctamente.
pause

Cada archivo generado queda identificado con la fecha y hora exacta en que se realizó la copia (por ejemplo backup_2025-01-15_14-30.zip), lo que facilita muchísimo encontrar la versión correcta si necesitas restaurar información de un día específico.

Cómo programar la ejecución automática

Para que el script corra solo, sin intervención manual, usa el Programador de Tareas de Windows:

  • Abre taskschd.msc (Programador de tareas).
  • Crea una nueva tarea básica y asígnale un nombre descriptivo, por ejemplo Backup diario FTP.
  • En el desencadenador, elige la frecuencia (diaria, semanal, etc.) y la hora de ejecución.
  • En la acción, selecciona Iniciar un programa y apunta a la ruta de tu archivo backup_ftp.bat.
  • Guarda la tarea y ejecútala una vez manualmente para confirmar que todo funciona antes de dejarla desatendida.

Buenas prácticas de seguridad

Antes de poner este script en producción, ten en cuenta lo siguiente:

  • Nunca dejes credenciales en texto plano en un script que se comparta o suba a un repositorio. Considera usar variables de entorno o un gestor de secretos si el equipo crece.
  • Usa FTPS o SFTP en lugar de FTP tradicional siempre que el servidor lo soporte, ya que FTP transmite las credenciales sin cifrar.
  • Limita los permisos del usuario FTP únicamente a la carpeta de destino de los backups, nunca a la raíz del servidor.
  • Verifica periódicamente que los backups se estén generando y que el archivo no esté corrupto: un backup que nadie prueba es, en la práctica, un backup que no existe.

Beneficios de automatizar tus backups hacia la nube

Más allá de la tranquilidad obvia, automatizar este proceso trae ventajas concretas:

  • Consistencia: los respaldos se generan siempre, sin depender de que alguien se acuerde de hacerlo.
  • Trazabilidad: cada archivo queda marcado con fecha y hora, lo que simplifica auditorías y recuperación puntual.
  • Reducción de errores humanos: elimina el riesgo de copiar la carpeta equivocada o de olvidar subir el respaldo.
  • Recuperación más rápida: al tener copias organizadas cronológicamente en la nube, restaurar información ante un incidente toma minutos, no horas.

Cuándo este script no es la herramienta adecuada

Este enfoque resuelve muy bien un caso concreto: respaldar carpetas de un equipo Windows hacia un destino remoto, de forma programada y sin licencias. Hay tres escenarios donde conviene otra cosa:

  • Si respaldas un servidor Linux, rsync sobre SSH es superior: transfiere solo lo que cambió y va cifrado. El proceso completo está en la guía de backups automáticos con rsync y cron.
  • Si necesitas versiones históricas, este script guarda un .zip por ejecución y el espacio crece sin control. Define una política de retención (por ejemplo, conservar 7 diarios, 4 semanales y 12 mensuales) y bórralas automáticamente, o usa una herramienta de respaldo con deduplicación.
  • Si respaldas una base de datos en caliente, comprimir sus archivos mientras el motor está encendido produce una copia que puede no restaurar. Genera primero un volcado con mysqldump o el equivalente de tu motor, y respalda ese archivo.

Automatizar tus copias de seguridad hacia un servidor FTP remoto es una de las inversiones de tiempo con mejor retorno en la administración de infraestructura: se configura una sola vez y protege indefinidamente. Combínalo con una política de retención clara, con credenciales que no vivan en texto plano dentro del script, y sobre todo con la costumbre de restaurar un respaldo de prueba cada cierto tiempo. Un respaldo que nadie ha restaurado nunca es una suposición, no una copia de seguridad. Si tienes dudas durante la implementación, nuestro equipo de soporte técnico está disponible 24/7 para ayudarte.

¿Listo para llevar tu sitio al siguiente nivel?

Hosting con LiteSpeed, NVMe y soporte 24/7 desde $3/mes.

Ver planes de hosting

Preguntas frecuentes