Maison  >  Article  >  Tutoriel système  >  Utilisation avancée de la commande Linux tar - données de sauvegarde

Utilisation avancée de la commande Linux tar - données de sauvegarde

WBOY
WBOYavant
2024-02-12 22:10:02588parcourir

Il existe une puissante commande tar sur les systèmes Linux. tar a été initialement conçu pour effectuer des sauvegardes sur bande (archives sur bandes), qui peuvent sauvegarder des fichiers et des répertoires sur des bandes et extraire ou restaurer des fichiers à partir de bandes. Désormais, nous pouvons utiliser tar pour sauvegarder des données sur n'importe quel support de stockage. Il s'agit d'une sauvegarde de niveau fichier qui ne nécessite pas de prendre en compte le type de système de fichiers sous-jacent et prend en charge les sauvegardes incrémentielles.

Linux tar命令高级用法——备份数据

1. Quelques options courantes

Quantity-z, –gzip : Utilisez l'outil de (dé)compression gzip, le suffixe est généralement .gz

Quantity**-c, –create : **emballage tar, le suffixe est généralement .tar

Quantity**-f, –file= : ** est immédiatement suivi du nom du fichier obtenu après packaging ou compression

Quantity**-x, –extract : **Commande de déballage, correspondant à -c

Quantity-p : Conserver les autorisations et les attributs d'origine des données de sauvegarde

Quantity**-g : **Le fichier instantané suivi de la sauvegarde incrémentielle

Quantity**-C : **Spécifiez le répertoire à décompresser

Quantity**–exclure : **Exclure les répertoires ou fichiers décompressés, prendre en charge la correspondance régulière

Autres

Quantity**-X, –exclude-from : **Liste les répertoires ou fichiers à exclure dans un fichier (à utiliser lorsque –exclude= est plus)

Quantity**-t, –list : **Liste la liste des fichiers dans l'archive de sauvegarde, n'apparaît pas en même temps que -c, -x

Quantity**-j, –bzip2 : **Utilisez l'outil de (dé)compression bzip2, le suffixe est généralement .bz2

Quantity**-P : **Conservez le chemin absolu, et il sera également automatiquement décompressé vers le chemin absolu lors de la décompression

Quantity**-v : ** Le processus de (dé)compression affiche le processus de traitement des fichiers, couramment utilisé mais non recommandé pour les fichiers volumineux

2. Données de sauvegarde incrémentielle (site Web)

De nombreux systèmes (applications ou sites Web) génèrent des fichiers statiques chaque jour. S'il est nécessaire de sauvegarder régulièrement certains fichiers statiques plus importants, ils peuvent être compressés et sauvegardés dans un emplacement désigné via un emballage tar, en particulier pour certains fichiers totaux. sont relativement volumineux. Dans de nombreux cas, vous pouvez également utiliser l'option -g pour effectuer une sauvegarde incrémentielle.

Il est préférable d'utiliser un chemin relatif pour le répertoire de sauvegarde, c'est-à-dire d'entrer le répertoire racine qui doit être sauvegardé

L'exemple de méthode spécifique est le suivant.

«

备份当前目录下的所有文件# tar -g /tmp/snapshot_data.snap -zcpf /tmp/data01.tar.gz .在需要恢复的目录下解压恢复# tar -zxpf /tmp/data01.tar.gz -C .

L'option

-g peut être comprise comme prenant un instantané du fichier de répertoire lors de la sauvegarde et enregistrant des informations telles que les autorisations et les attributs. Si /tmp/snapshot_data.snap n'existe pas lors de la première sauvegarde, il en créera un nouveau et en créera un. sauvegarde complète. Lorsque les fichiers du répertoire sont modifiés, exécutez à nouveau la première commande de sauvegarde (n'oubliez pas de modifier le nom du fichier d'archive suivant), et les fichiers modifiés, y compris les autorisations et les attributs, seront automatiquement sauvegardés de manière incrémentielle en fonction du fichier instantané spécifié par - g. Les fichiers qui ont été déplacés ne seront pas sauvegardés à nouveau.

Notez également que la récupération ci-dessus est une "récupération de préservation", c'est-à-dire que les fichiers portant le même nom de fichier seront écrasés et que les fichiers qui existent déjà dans le répertoire d'origine (mais pas dans le fichier de sauvegarde) seront toujours conservés. Donc, si vous souhaitez restaurer complètement les fichiers exactement tels qu'ils ont été sauvegardés, vous devez effacer le répertoire d'origine. S'il existe des fichiers de sauvegarde incrémentielle, vous devez utiliser la même méthode pour décompresser ces fichiers séparément et faire attention à l'ordre.

Ce qui suit montre un exemple plus complet, les exigences sont :

● Sauvegardez le répertoire /tmp/data, mais excluez le répertoire cache et les fichiers temporaires

QuantityLe répertoire étant relativement volumineux (>4G), les fichiers de sauvegarde doivent être divisés en fichiers de sauvegarde complète (par exemple, chaque fichier de sauvegarde peut contenir jusqu'à 1G)

● Préservez toutes les autorisations et attributs de fichiers, tels que le groupe d'utilisateurs et les autorisations de lecture et d'écriture

«

# cd /tmp/data

Faites une sauvegarde complète

# rm -f /tmp/snapshot_data.snap

# tar -g /tmp/snapshot_data.snap -zcpf – –exclude=./cache ./ | split -b 1024M – /tmp/bak_data$(date -I).tar.gz_

Après le fractionnement, le nom du fichier sera suivi de aa, ab, ac,..., et l'archive de sauvegarde finale ci-dessus sera enregistrée sous

bak_data2014-12-07.tar.gz_aa

bak_data2014-12-07.tar.gz_ab

bak_data2014-12-07.tar.gz_ac

Sauvegarde incrémentielle

Cela peut être la même commande qu'une sauvegarde complète, mais il convient de noter que si vous sauvegardez plusieurs fois par jour, cela peut provoquer des noms de fichiers en double, ce qui entraînera

Implémentation de la sauvegarde, car le fractionnement sera toujours nommé à partir de aa, ab. Si la quantité de génération (modification) de fichiers en une journée n'est pas particulièrement importante, alors il est recommandé de ne pas augmenter la partie incrémentielle

Traitement fractionné : (S'il doit être fractionné, ajoutez une heure plus détaillée au nom du fichier, telle que $(date +%Y-%m-%d_%H))

# tar -g /tmp/snapshot_data.snap -zcpf /tmp/bak_data2014-12-07.tar.gz –exclude=./cache ./

Réserves supplémentaires le lendemain

# tar -g /tmp/snapshot_data.snap -zcpf /tmp/bak_data2014-12-08.tar.gz –exclude=./cache ./

Processus de récupération

«

Restaurer les fichiers d'archives de sauvegarde complète

Vous pouvez choisir d'effacer d'abord le répertoire /tmp/data/

# cat /tmp/bak_data2014-12-07.tar.gz_* | tar -zxpf – -C /tmp/data/

Restaurer les fichiers d'archive de sauvegarde incrémentielle

$ tar –zxpf /tmp/bak_data2014-12-07.tar.gz -C /tmp/data/

$ tar –zxpf /tmp/bak_data2014-12-08.tar.gz -C /tmp/data/

Assurez-vous de restaurer dans l'ordre chronologique. Les règles de nom de fichier suivantes peuvent également utiliser le formulaire générique ci-dessus

.

Si vous avez besoin d'une sauvegarde régulière, telle qu'une sauvegarde complète une fois par semaine et une sauvegarde incrémentielle une fois par jour, vous pouvez la combiner avec crontab.

3. Sauvegarder le système de fichiers

Il existe de nombreuses façons de sauvegarder un système de fichiers, telles que cpio, rsync, dump, tar. Voici un exemple de sauvegarde de l'intégralité du système Linux via tar. L'ensemble du processus de sauvegarde et de récupération est similaire à celui ci-dessus.

Tout d'abord, il existe certains répertoires sous Linux (CentOS ici) qu'il n'est pas nécessaire de sauvegarder, tels que /proc, /lost+found, /sys, /mnt, /media, /dev, /proc, /tmp . Si vous sauvegardez sur bande/, vous n'avez pas à vous soucier autant de dev/st0, car je sauvegarde dans le répertoire local /backup, je dois donc également exclure certains autres répertoires montés sur NFS ou sur le stockage réseau.

«

Créer un fichier de liste d'exclusion

# vi /backup/backup_tar_exclude.list

/sauvegarde

/proc

/perdu+trouvé

/sys

/mois

/médias

/dev

/tmp

$ tar -zcpf /backup/backup_full.tar.gz -g /backup/tar_snapshot.snap –exclude-from=/backup/tar_exclude.list /

4.Attention

Lorsque vous utilisez tar pour sauvegarder des données ou des systèmes de fichiers, vous devez déterminer s'il faut restaurer sur le système d'origine ou sur un autre nouveau système.

La sauvegarde tar est extrêmement dépendante de l'attribut atime du fichier,

QuantityL'utilisateur auquel appartient le fichier est déterminé en fonction de l'ID utilisateur. La récupération multi-machines doit considérer que le même utilisateur a le même USERID

.

QuantityEssayez de ne pas exécuter d'autres processus pendant le processus de sauvegarde et de récupération, car cela pourrait entraîner une incohérence des données

QuantityLes fichiers de connexion logiciels et matériels peuvent être restaurés normalement

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer