¿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
DELETEsinWHERE, 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
.ziplocal 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
.ziptemporal.
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:
:: 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
.zippor 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
mysqldumpo 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.
Hosting con LiteSpeed, NVMe y soporte 24/7 desde $3/mes.