« Le système d'exploitation GNU-Linux/Le backup : tar et gzip » : différence entre les versions
Contenu supprimé Contenu ajouté
rajout du shell script de sauvegarde journalière + des sauvegardes incrémentales |
|||
Ligne 92 :
[[Image:targzip.jpg]]
{{TODO|parler des autres outils : dump/restore, compress, cpio ...}}▼
== Les alternatives à gzip ==
=== bzip2 ===
'''bzip2''' est un autre algorithme de compression
Il est plus performant mais beaucoup moins rapide que gzip.
Pour compresser un fichier avec '''bzip2''' :
# bzip2 unfichier
tar -cjf cible.tar.bzip2 /repasauver▼
Pour le décompresser :
# bzip2 -d unfichier.bz2
Tout comme gzip, on peut indiquer à tar d'utiliser bzip2 pour compresser l'archive (option '''j'''):
{{TODO|parler des autres logiciels de compression : 7zip, lzop ...}}
== Un shell script de sauvegarde journalière de /etc ==
Voici un shell script qui permet de sauvegarder quotidiennement le répertoire /etc :
#!/bin/bash
#▼
# Ne pas oublier :
# - de creer le repertoire /backup : mkdir /backup
# - de rendre ce script executable : chmod +x backup_etc
#
# Tester le script une fois manuellement : ./backup_etc
#
# Le rajouter dans la crontab
DATEJOUR=$(date +"%Y-%m-%d-%H-%M-%S")
REPABACKUPER="/etc"
REPBACKUP="/backup"
NOMFIC=$REPBACKUP/etc-$DATEJOUR.tgz
tar czf $NOMFIC $REPABACKUPER
▲{{TODO|parler des autres outils : dump/restore, compress, cpio ...}}
== Les sauvegardes incrémentales ==
find / -mtime -1 -type f▼
La commande '''find''' permet de trouver des fichiers correspondants à des critères donnés. On peut par exemple connaître la liste des fichiers modifiés depuis 1 jour :
find / \(path /proc -o -path /dev -o -path /sys \) -prune -o -mtime -1 -type f -print > /tmp/fic_du_jour▼
> Et renvoi la réponse dans le fichier /tmp/fic_du_jour▼
▲ # find / -mtime -1 -type f
En combinant la commande '''find''' et la commande '''tar''', on peut ainsi facilement sauvegarder les fichiers modifiés depuis la veille, et ainsi réaliser une sauvegarde incrémentale.
La commande suivante retourne la liste de tous les fichiers du système modifiés depuis hier (en excluant les fichiers contenus dans /proc, /dev et /sys), et stocke la liste de ces fichiers dans le fichier '''/tmp/fic_du_jour''':
▲ # find / \( -path /proc -o -path /dev -o -path /sys \) -prune -o
On peut ensuite appeller la commande '''tar''' avec l'option '''-T''' qui permet d'indiquer la liste des fichiers à archiver :
# tar cz -T /tmp/fic_du_jour -f backup.tgz▼
Grâce aux tubes (pipe), on peut s'affranchir de passer par un fichier temporaire et directement enchaîner les deux commandes :
# find / \( -path /proc -o -path /dev -o -path /sys \) -prune -o
-mtime -1 -type f -print | tar cz -T - -f backup.tgz
Toujours grâce aux tubes, on peut découper le fichier obtenu en plusieurs fichiers d'une taille donnée :
# find / \( -path /proc -o -path /dev -o -path /sys \) -prune -o
-mtime -1 -type f -print | tar cz -T - | split - -b 5m backup_
# ls -lh backup_*
-rw-r--r-- 1 root root 5,0M 2007-12-06 14:30 backup_aa
-rw-r--r-- 1 root root 5,0M 2007-12-06 14:30 backup_ab
-rw-r--r-- 1 root root 5,0M 2007-12-06 14:30 backup_ac
-rw-r--r-- 1 root root 3,5M 2007-12-06 14:30 backup_ad
Pour re-assembler les fichiers découpés, on utilise la commande cat :
▲ tar cz -T /tmp/fic_du_jour -f backup.tgz
# cat backup_* > backup.tgz
== Les logiciels spécialisés ==
|