Cómo hacer instantáneas automáticas por hora/diario/semanal con Btrfs

Cómo hacer instantáneas automáticas por hora/diario/semanal con Btrfs

Recuerdo haber trabajado en una empresa con un servidor NetApp en 2003 y teníamos un directorio de instantáneas en nuestros directorios de inicio, en el que aparecían varias instantáneas. Creo que hubo instantáneas del último minuto, hora, día, semana, etc. Cuando configuré mi primer sistema de archivos Btrfs, me sorprendió no poder encontrar un script para automatizar la provisión de una interfaz similar usando Btrfs.

No recuerdo exactamente cómo se configuró el diseño, pero podría imaginarme algo como esto:

$HOME/some_file
$HOME/.snapshot/minute/2016-04-16_07_33/some_file
                       2016-04-16_07_34/...
                       2016-04-16_07_35
                hour/2016-04-16_05_00
                     2016-04-16_06_00
                     2016-04-16_07_00
                day/2016-04-14
                    2016-04-15
                    2016-04-16
                week/2016-03-27
                     2016-04-03
                     2016-04-10

Lo que estoy buscando es un script desde el que pueda ejecutar cron, que creará las instantáneas Btrfs necesarias y las montará en las ubicaciones anteriores. Debería ejecutarse una vez por minuto. Para cada unidad de tiempo (minuto/hora/día/semana), debe mantener un número configurable N de instantáneas, para las últimas N unidades. En el ejemplo anterior, N sería 3. Las instantáneas más antiguas deben eliminarse automáticamente a menos que estén en uso. "En uso" podría significar, por ejemplo, que he cdconectado a uno de ellos o lo he montado en otro lugar.

Obviamente, también sería bueno tener instantáneas simultáneas /en el sistema raíz, o en /home/some_other_user/, y no solo en el mío $HOME.

información relacionada