Lembro-me de trabalhar em uma empresa com um servidor NetApp em 2003, e tínhamos um diretório de snapshots em nossos diretórios pessoais, com vários snapshots aparecendo nele. Acho que houve instantâneos do último minuto, hora, dia, semana, etc. Quando configurei meu primeiro sistema de arquivos Btrfs, fiquei surpreso por não conseguir encontrar um script para automatizar o fornecimento de uma interface semelhante usando Btrfs.
Não me lembro exatamente como o layout foi configurado, mas poderia imaginar algo assim:
$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
O que estou procurando é um script que possa ser executado cron
, que criará os instantâneos Btrfs necessários e os montará nos locais acima. Deve ser executado uma vez por minuto. Para cada unidade de tempo - minuto/hora/dia/semana - deverá manter algum número configurável N de snapshots, para as últimas N unidades. No exemplo acima, N seria 3. Os instantâneos mais antigos devem ser excluídos automaticamente, a menos que estejam em uso. "Em uso" pode significar, por exemplo, que eu usei cd
um deles ou o montei em outro local.
Obviamente, também seria bom ter instantâneos simultâneos /
no sistema raiz, ou no /home/some_other_user/
, e não apenas no meu $HOME
.