# Sauvegarde et restauration des systèmes de fichiers XFS
Le package **xfsdump** contient les utilitaires **xfsdump** et **xfsrestore**.
#### xfsdump
`xfsdump` examine les fichiers d'un système de fichiers XFS, détermine quels fichiers doivent être sauvegardés et les copie sur le support de stockage. Toutes les sauvegardes créées à l'aide de **xfsdump** sont portables entre systèmes dotés d'architectures différentes. **xfsrestore** restaure une sauvegarde complète ou incrémentielle d'un système de fichiers XFS. On peut également restaurer des fichiers individuels et des hiérarchies de répertoires à partir de sauvegardes.
Contrairement à un instantané LVM, qui crée immédiatement un clone fragmenté d'un volume, **xfsdump** prend du temps pour créer une copie des données du système de fichiers.
On peut utiliser la commande **xfsdump** pour créer une sauvegarde d'un système de fichiers XFS sur un périphérique tel qu'un lecteur de bande ou dans un fichier de sauvegarde sur un autre système de fichiers. Une sauvegarde peut couvrir plusieurs supports physiques écrits sur le même périphérique et on peut écrire plusieurs sauvegardes sur le même support. On ne peut écrire qu'une seule sauvegarde dans un fichier. La commande ne remplace pas les sauvegardes XFS existantes trouvées sur un support physique. Il faut utiliser une commande appropriée pour effacer un support physique pour écraser les sauvegardes existantes.
Par exemple, la commande suivante écrit une sauvegarde de niveau 0 (de base) du système de fichiers XFS, `/myxfs` sur le périphérique `/dev/st0` et attribue un libellé de session à la sauvegarde:
```
# xfsdump -l 0 -L "Backup level 0 of /myxfs `date`" -f /dev/st0 /myxfs
```
On peut effectuer des sauvegardes incrémentielles par rapport à une sauvegarde existante à l'aide de la commande suivante:
```
# xfsdump -l level -L "Backup level level of /myxfs `date`" -f /dev/st0 /myxfs
```
Une sauvegarde de niveau 1 n'enregistre que les modifications du système de fichiers depuis la sauvegarde de niveau 0, une sauvegarde de niveau 2 n'enregistre que les modifications apportées depuis la dernière sauvegarde de niveau 1, et ainsi de suite jusqu'au niveau 9.
Si on interromp une sauvegarde en tapant Ctrl-C et qu'on a pas spécifié l'option `-J` (supprimer l'inventaire de vidage) dans `xfsdump` , on peut reprendre à une date ultérieure en spécifiant l'option `-R` :
```
# xfsdump -R -l 1 -L "Backup level 1 of /myxfs `date`" -f /dev/st0 /myxfs
```
Dans cet exemple, le libellé de la session de sauvegarde de la session précédente interrompue est remplacé.
#### xfsrestore
Utiliser la commande **xfsrestore** pour rechercher des informations sur les sauvegardes effectuées d’un système de fichiers XFS ou pour restaurer des données à partir d’une sauvegarde.
La commande `xfsrestore -I` affiche des informations sur les sauvegardes disponibles, y compris l'ID de session et le libellé de la session.
Pour restaurer une session de sauvegarde spécifique à partir d'un support de sauvegarde, on peut spécifier l'ID de session ou le libellé de la session.
Par exemple, pour restaurer un système de fichiers XFS à partir d'une sauvegarde de niveau 0, en spécifiant l'ID de session:
```
# xfsrestore -f /dev/st0 -S c76b3156-c37c-5b6e-7564-a0963ff8ca8f /myxfs
```
En spécifiant l'option `-r` , on peut récupérer de manière cumulative toutes les données d'une sauvegarde de niveau 0 et des sauvegardes de niveau supérieur basées sur cette sauvegarde:
```
# xfsrestore -r -f /dev/st0 -v silent /myxfs
```
La commande cherche dans l'archive à la recherche de sauvegardes basées sur la sauvegarde de niveau 0 et invite à choisir laquelle restaurer. Après avoir restauré la sauvegarde sélectionnée, la commande se ferme. Il faut exécuter cette commande plusieurs fois, en sélectionnant tout d'abord de restaurer la sauvegarde de niveau 0, puis en effectuant des sauvegardes de niveau supérieur, y compris celle la plus récente dont on a besoin pour restaurer les données du système de fichiers.
Une fois la restauration cumulative d’un système de fichiers XFS terminée, il faut supprimer le répertoire `housekeeping` créé par **xfsrestore** dans le répertoire de destination.
On peut récupérer le contenu d'un fichier ou d'un sous-répertoire sélectionné à partir du support de sauvegarde, comme illustré dans l'exemple suivant, qui récupère le contenu de `/myxfs/profile/examples dans /tmp/profile/examples` à partir de la sauvegarde avec un libellé de session spécifié:
```
# xfsrestore -f /dev/sr0 -L "Backup level 0 of /myxfs Sat Mar 2 14:47:59 GMT 2013" \
-s profile/examples /usr/tmp
```
On peut également parcourir une sauvegarde de manière interactive en spécifiant l'option -i :
```
# xfsrestore -f /dev/sr0 -i
```
Cette commande permet de parcourir une sauvegarde comme s’il s’agissait d’un système de fichiers. On peut modifier des répertoires, répertorier des fichiers, ajouter des fichiers, supprimer des fichiers ou extraire des fichiers d’une sauvegarde.
#### Copier l'intégralité d'un système de fichiers XFS
Pour copier l'intégralité du contenu d'un système de fichiers XFS sur un autre, on peut combiner **xfsdump** et **xfsrestore** , à l'aide de l'option `-J` pour supprimer le nettoyage habituel de l'inventaire de vidage effectué par les commandes:
```
# xfsdump -J - /myxfs | xfsrestore -J - /myxfsclone
```