Entrées que je peux exclure en toute sécurité des sauvegardes

10

Je prévois une stratégie de sauvegarde basée sur rsnapshot .

Je veux faire une sauvegarde complète du système en excluant les fichiers et répertoires qui seraient inutiles pour que la restauration ait à nouveau un système qui fonctionne. J'ai déjà exclu:

# System:
exclude /dev/*
exclude /proc/*
exclude /sys/*
exclude /tmp/*
exclude /run/*
exclude /mnt/*
exclude /media/*
exclude /lost+found

# Application:
exclude /*.pyc
exclude /*.pyo

Je me demande quelles autres entrées je peux ajouter à la liste d'exclusion sans compromettre le système restauré. En parlant d'un système Linux "générique", pouvez-vous suggérer d'autres extensions glob, des répertoires temporaires, des caches, etc. Je peux exclure en toute sécurité?

Paolo
la source

Réponses:

11

Tout d'abord, vous devriez lire un peu sur la syntaxe d'inclusion / exclusion de rsync. J'ai l'impression que ce que vous voulez faire est mieux fait en utilisant des **globes que des *globes. (se **développe en un nombre quelconque d'entrées, alors qu'il *ne se développe qu'en une seule entrée pouvant correspondre à plusieurs entrées de répertoire . Les détails se trouvent man rsyncsous les règles de modèle d'inclusion / exclusion .)

Cela dit, si vous voulez pouvoir restaurer le système à un état de fonctionnement connu à partir de la sauvegarde avec un minimum de tracas, vous devez faire attention à exclure les fichiers ou les répertoires. J'utilise rsnapshot moi-même et j'ai en fait adopté l'approche inverse: inclure tout sauf quelques répertoires soigneusement sélectionnés.

Donc, mon rsnapshot.conf déclare en fait (avec des onglets pour rendre l'analyseur du fichier de configuration de rsnapshot heureux):

interval backup NNN # pick your poison
one_fs 0
exclude /backup/**
exclude /dev/**
exclude /proc/**
exclude /run/**
exclude /sys/**
exclude /tmp/**
backup / ./

et très peu d'autre. Oui, cela signifie que je pourrais copier un peu plus que ce qui est strictement nécessaire, mais cela garantit que tout ce qui n'est pas destiné à être éphermal est copié. En raison de rsnapshot utilisant le comportement hardlink-to-deduplicate de rsync, le seul coût réel à cela est lors de la première exécution; après cela, en supposant que vous disposez d'un emplacement cible de sauvegarde de taille raisonnable (par rapport à la taille totale de votre ensemble de données), cela prend très peu de temps supplémentaire ou d'espace disque. J'exclus le contenu de / backup car c'est là que je monte le système de fichiers cible de sauvegarde; ne pas l'exclure entraînerait la situation de copier la sauvegarde en elle-même. Cependant, pour plus de simplicité, si j'ai besoin de restaurer sur du métal nu, je veux garder le point de montage!

Dans mon cas, je ne peux pas non plus raisonnablement utiliser one_fs 1; J'exécute ZFS avec actuellement environ 40 systèmes de fichiers. La liste de tous ceux-ci serait un cauchemar de maintenance et rendrait le travail avec les systèmes de fichiers ZFS beaucoup plus impliqué qu'il ne devrait l'être.

Quasiment tout ce que vous voulez exclure au-delà de ce qui précède dépendra de toute façon de la distribution, il est donc pratiquement impossible de donner une réponse générique. Cela dit, vous trouverez probablement des candidats sous / var.

un CVn
la source
1
exclude /somepath/*est parfaitement bien dans ce cas; il exclut tout /somepath/, comme prévu. Vous n'en avez pas besoin **car il n'est pas nécessaire de regarder plus en profondeur lorsque tout /somepath/est déjà exclu.
Martin von Wittich
Ou tout simplement utiliser exclude /somepathet ignorer complètement ces répertoires - pas seulement leur contenu.
Frank Kusters
4
@spaceknarf Cela rompt le montage lorsque vous restaurez sur du métal nu, car alors le point de montage n'existe pas.
un CVn du
4

La plupart de ce que vous essayez de faire peut probablement être accompli simplement en utilisant le one_fsparamètre. Définissez les systèmes de fichiers que vous souhaitez inclure dans vos sauvegardes, utilisez ce paramètre pour ignorer le reste ( proc, sys, dev, etc.). J'inclurais /lost+foundparce que ce répertoire devrait toujours être vide, sauf si vous avez sauvegardé un système de fichiers corrompu, auquel cas vous voulez probablement une sauvegarde de tout ce qui a été fsckrécupéré. De plus, .pycet .pyone devrait pas vraiment être dans le répertoire racine en premier lieu, donc je supprimerais également ces lignes. /tmpet /var/tmpsont sur les seuls chemins restants sur un système "générique" qui contiennent des données qui peuvent être exclues de manière fiable des sauvegardes. Alors essayez peut-être quelque chose comme:

one_fs 1

exclude /tmp/
exclude /var/tmp/
depquid
la source
Je ne voulais pas vraiment /*.pycet /*.pycmais à l'échelle du système *.pycet *.pyo, je l'ai corrigé. Cependant, je ne suis pas sûr que ce one_fsparamètre soit 1susceptible d'exclure tout ce que je veux.
Paolo
1
Que faire si un package système utilise de tels fichiers?
depquid
vous avez raison, mais je suis presque sûr que chaque fichier .py sera recompilé automatiquement tôt ou tard.
Paolo
3
Peut-être, mais sur mon système, ces fichiers sont installés par des packages de fournisseurs. Ce qui signifie que si le système est restauré à partir d'une sauvegarde, les fichiers que le gestionnaire de packages pense qu'il y aura seront manquants. Vous avez demandé une solution pour un système Linux "générique", et je ne pense pas qu'il soit sûr de toujours supposer que de tels fichiers peuvent être perdus sans causer de problèmes.
depquid
une chose à noter que j'ai oublié de dire dans le Q. est que les montures de liaison doivent également être exclues pour éviter la duplication des données.
Paolo
1

Je trouve qu'il est préférable d'avoir une liste de paquets, le contenu de / etc, / home et toutes les données utilisateur / système de / var et ailleurs. Il est généralement plus rapide de réinstaller les packages et de recopier la configuration de travail.

Sean Perry
la source
Pourquoi l'installation de packages, qui comprend l'écriture de tous les fichiers système ainsi que le traitement de la configuration et des métadonnées, serait-elle plus rapide que la simple copie de fichiers?
depquid
D'après mon expérience, lorsqu'une véritable sauvegarde est nécessaire, vous découvrez également que vous n'avez pas correctement stocké et documenté tous les bits d'un système. En se concentrant plutôt sur les loisirs plutôt que sur la restauration, cela est plus facile, plus rapide et plus souvent effectué. Évidemment YMMV.
Sean Perry