[gull] Équivalent de Time Machine

felix felix at f-hauri.ch
Thu Oct 1 15:14:36 CEST 2020


Re,

On Thu, Oct 01, 2020 at 01:31:16PM +0200, magnus wrote:
> On 2020-10-01 11:46, felix wrote:
> >        cd /pathtobackups &&
> >            cp -al base $(date -r base +base-%Y-%m-%d-%Hh%M) &&
> >            touch base &&
> >            rync ...

> ça ressemble pas mal à rsnapshot (https://rsnapshot.org/).

Oui et non:

Quand j'ai écrit mon premier backrotate.sh, je nommais le backups:
``base'', ``daily.mon'', ``monthly.dec'', etc.

A ce que j'ai vu sur https://wiki.archlinux.org/index.php/Rsnapshot
cela ressemble beaucoup. (Mes premiers travaux sur les backups datent
de ~2000-2001, je ne connaissais pas rsnapshot...)

Mais je me suis rendu compte, à l'usage, que cette ``rotation'' implique
d'effacer chaque heure, jour, semaine, etc. le plus ancien, pour
le remplacer par son suivant. Or effacer un répertoire contenant plusieurs
milions de liens peut constituer une charge notable.

C'est la raison pour laquelle, mes backups sont désormais nommés:
    drwxr-xr-x 10 root root       4096 Oct  1 12:44 base
    drwxr-xr-x 10 root root       4096 Oct  1 06:46 base-2020-10-01-06-38
    drwxr-xr-x 10 root root       4096 Oct  1 00:44 base-2020-10-01-00-38
    drwxr-xr-x 10 root root       4096 Sep 30 18:44 base-2020-09-30-18-38
    ...
ou plus lisible, avec un `h' pour heure:
    drwxr-xr-x 10 root root       4096 Sep 30 18:44 base-2020-09-30-18h38

Puis mon script delbackups:  https://f-hauri.ch/vrac/delbackups.pl.txt
va effectuer la liste des backups, classer ceux à conserver et proposer
d'effacer ceux devenus superflus.

Exemple: Je fais un backup de ``somehost'' toutes les 6 heures, depuis 2014,
le script `delbackups.pl' est lancé la nuit. Si je lance ce script maintenant,
avec l'argument `-n' (ne rien faire), il affiche les 32 backups à conserver,
sur 38 lignes, car p.ex: le dernier d'hier est affiché 3 fois une fois
pour l'heure, une fois pour le jour et une fois pour le mois.

(Les lignes commençant par un `+' figure la première apparition d'un
 backup, dans l'affichage)

    # delbackups.pl -n /backups/somehost
    Keep 32 (38), delete 3 backups base
    Hourly         3
    + 2020/09/30 18h38  H    74   [ D3 H74 M09 ]
    + 2020/10/01 00h38  H    02   [ H02 ]
    + 2020/10/01 06h38  H    26   [ H26 Y2020 ]
    Daily          7
    + 2020/09/24 18h38  D   Thu   [ D4 ]
    + 2020/09/25 18h38  D   Fri   [ D5 ]
    + 2020/09/26 18h38  D   Sat   [ D6 ]
    + 2020/09/27 18h38  D   Sun   [ D0 W38 ]
    + 2020/09/28 18h38  D   Mon   [ D1 ]
    + 2020/09/29 18h38  D   Tue   [ D2 ]
      2020/09/30 18h38  D   Wed   [ D3 H74 M09 ]
    Weekly         9
    + 2020/07/31 12h38  W    30   [ M07 W30 ]
    + 2020/08/09 12h38  W    31   [ W31 ]
    + 2020/08/16 18h38  W    32   [ W32 ]
    + 2020/08/23 18h38  W    33   [ W33 ]
    + 2020/08/30 18h38  W    34   [ W34 ]
    + 2020/09/06 18h38  W    35   [ W35 ]
    + 2020/09/13 18h38  W    36   [ W36 ]
    + 2020/09/20 18h38  W    37   [ W37 ]
      2020/09/27 18h38  W    38   [ D0 W38 ]
    Monthly       12
    + 2019/10/31 18h36  M   Oct   [ M10 ]
    + 2019/11/30 18h45  M   Nov   [ M11 ]
    + 2019/12/31 18h47  M   Dec   [ M12 Y2019 ]
    + 2020/01/31 18h50  M   Jan   [ M01 ]
    + 2020/02/29 18h45  M   Feb   [ M02 ]
    + 2020/03/31 18h44  M   Mar   [ M03 ]
    + 2020/04/30 18h38  M   Apr   [ M04 ]
    + 2020/05/31 18h38  M   May   [ M05 ]
    + 2020/06/30 18h38  M   Jun   [ M06 ]
      2020/07/31 12h38  M   Jul   [ M07 W30 ]
    + 2020/08/31 18h38  M   Aug   [ M08 ]
      2020/09/30 18h38  M   Sep   [ D3 H74 M09 ]
    Yearly         7
    + 2014/12/31 18h42  Y  2014   [ Y2014 ]
    + 2015/12/31 18h36  Y  2015   [ Y2015 ]
    + 2016/12/31 18h46  Y  2016   [ Y2016 ]
    + 2017/12/31 18h47  Y  2017   [ Y2017 ]
    + 2018/12/31 18h47  Y  2018   [ Y2018 ]
      2019/12/31 18h47  Y  2019   [ M12 Y2019 ]
      2020/10/01 06h38  Y  2020   [ H26 Y2020 ]
    There is 3 backups to delete:
        2020-09-30-00-38    2020-09-30-06-38    2020-09-30-12-38

Un prochaine version de ce script créera peut-être des liens symboliques:
   ln -s base-2020-09-30-18-38 daily.wed
   ln -s base-2020-09-30-18-38 monthly.sep
   ln -s base-2020-09-30-18-38 hourly.18h30

-- 
 Félix Hauri  -  <felix at f-hauri.ch>  -  http://www.f-hauri.ch


More information about the gull mailing list