Copias de seguridad automáticas

Frost hace copias según una programación, usando el propio programador de tu sistema operativo. Entre una copia y otra no queda nada funcionando en segundo plano.

#Cambiar la programación

frost init te pregunta cada cuánto hacer copias. Para cambiarlo más adelante:

frost config set schedule.every 6h

Las opciones son hourly, 2h, 3h, 4h, 6h, 8h, 12h, daily y weekly. La predeterminada es daily.

Para elegir cuándo se hacen las copias, indica una hora en formato de 24 horas y, para las copias semanales, el día:

frost config set schedule.time 09:30
frost config set schedule.day friday

Los valores predeterminados son 15:00 y sunday. Para desactivar las copias automáticas, o volver a activarlas:

frost config set schedule.enabled false
frost config set schedule.enabled true

Cada cambio actualiza la tarea programada al momento. En macOS y Windows, un cambio hecho durante una copia programada se aplica en cuanto esa copia termina. Si editas config.toml tú mismo, el siguiente comando de Frost actualiza la tarea.

#Cuándo se hacen las copias

Las copias se hacen a la hora de schedule.time, en la hora local de tu equipo:

schedule.every Hace la copia
daily Todos los días a esa hora
weekly Cada semana el día schedule.day, a esa hora
2h a 12h A esa hora, y cada intervalo antes y después. 6h desde las 15:00 se ejecuta a las 03:00, 09:00, 15:00 y 21:00
hourly Cada hora, en los minutos de esa hora

systemd retrasa cada ejecución hasta 5 minutos, al azar.

#Copias perdidas

Si tu equipo estaba apagado o en reposo cuando tocaba una copia, Frost la hace en cuanto vuelve. Aunque se haya perdido varias, hace una sola copia.

Programador Hace la copia perdida
launchd (macOS) Cuando tu Mac se despierta, o cuando inicias sesión después de tenerlo apagado
systemd (Linux) Cuando tu equipo se despierta o arranca, o cuando inicias sesión si el lingering está desactivado
Programador de tareas (Windows) En cuanto puede, cuando tu equipo vuelve y tienes la sesión iniciada
cron (Linux) En los 15 minutos siguientes a que vuelva tu equipo

Con cron, Frost comprueba cada 15 minutos y solo hace una copia cuando toca o cuando se perdió una. Si una hora ya está cubierta, por una copia programada o por una que hiciste tú, no se hace una segunda copia.

Para saltarte las copias perdidas, de modo que Frost solo copie a su hora:

frost config set schedule.catch_up false

Una copia programada que empieza antes de que vuelva tu red, o antes de que se monte un disco o una carpeta compartida, lo reintenta durante unos 5 minutos. Con un disco local, el disco tiene que estar conectado cuando se hace la copia. Servidor propio inicia sesión con la propia clave SSH de Frost, así que funciona sin ti. Si hay otra copia en marcha, espera a que termine.

En Windows, las copias programadas solo se ejecutan mientras tengas la sesión iniciada. No empiezan mientras el equipo funciona con batería, y se detienen si lo desenchufas. En macOS y con systemd, las copias programadas se ejecutan con baja prioridad para no ralentizar tu equipo.

#La tarea programada

Sistema Programador Tarea
macOS launchd ~/Library/LaunchAgents/io.github.whatithasisandalwayswillbe.frost.plist
Linux con systemd Temporizador de usuario de systemd ~/.config/systemd/user/frost-backup.service y frost-backup.timer
Linux sin systemd cron Una línea de tu crontab marcada con # frost-backup
Windows Programador de tareas Una tarea llamada frost backup

La tarea ejecuta frost backup con las carpetas de configuración y de caché que estaban en uso cuando se creó. Si cambias esas carpetas, vuelve a ejecutar frost init.

En macOS, la tarea aparece en Ajustes del Sistema > General > Ítems de inicio y extensiones (System Settings > General > Login Items & Extensions) como Node.js Foundation, el editor del entorno de ejecución que incluye Frost. Si la desactivas ahí, se detienen las copias programadas y frost status indica que falta la tarea. Para detener las copias programadas, usa mejor frost config set schedule.enabled false.

Con systemd, Frost intenta activar lingering para tu usuario (loginctl enable-linger) si puede confirmar que está desactivado. Lingering permite que las copias se hagan aunque hayas cerrado sesión. Si Frost no puede activarlo, las copias pueden dejar de ejecutarse al cerrar sesión. Al quitar el temporizador, Frost solo desactiva lingering si dejó constancia de haberlo activado.

#Registros

Programador Dónde va el registro
launchd, cron y el Programador de tareas frost.log en la carpeta de caché de Frost. Consulta Archivos y carpetas
systemd El journal. Léelo con journalctl --user -u frost-backup

Un registro de más de 1 MiB se vacía antes de la siguiente ejecución. frost status también muestra si la última copia funcionó.

#Si la tarea desaparece

Si la tarea se borra o se desactiva, frost status muestra "scheduled job is missing" (falta la tarea programada). Recupérala con:

frost config set schedule.enabled true