Как делать автоматические ежечасные/ежедневные/еженедельные снимки с помощью Btrfs

Как делать автоматические ежечасные/ежедневные/еженедельные снимки с помощью Btrfs

Помню, как в 2003 году я работал в компании с сервером NetApp, и у нас в домашних каталогах был каталог снимков, в котором появлялись различные снимки. Думаю, там были снимки за последнюю минуту, час, день, неделю и т. д. Когда я настраивал свою первую файловую систему Btrfs, я был удивлен, что не смог найти скрипт для автоматизации предоставления аналогичного интерфейса с использованием Btrfs.

Я не помню точно, как была устроена раскладка, но могу себе представить что-то вроде этого:

$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

Мне нужен скрипт, который я могу запустить из cron, который создаст необходимые снимки Btrfs и смонтирует их в указанных выше местах. Он должен запускаться раз в минуту. Для каждой единицы времени — минута/час/день/неделя — он должен сохранять некоторое настраиваемое количество снимков N для последних N единиц. В приведенном выше примере N будет равно 3. Более старые снимки должны автоматически удаляться, если они не используются. «Используется» может означать, например, что я подключился cdк одному из них или смонтировал его в другом месте.

Очевидно, было бы неплохо иметь одновременные снимки в /корневой системе или в /home/some_other_user/, а не только в моей собственной $HOME.

Связанный контент