Table des matières
Des outils et astuces pour gérer les données binaires ou textuelles sur le système sont décrits.
![]() |
Avertissement |
---|---|
Il ne faut pas accéder de manière non coordonnée en écriture à des
périphériques et des fichiers à haut trafic depuis différents processus pour
éviter une compétition d’accès (« race
condition ». Pour l’éviter, on peut utiliser les mécanismes de
verrouillage de fichier (« File
locking » en utilisant |
La sécurité des données et leur partage contrôlé présentent plusieurs aspects.
La création d’une archive des données
L’accès à un stockage distant
La duplication
Le suivi de l’historique des modifications
La facilité de partage des données
La prévention de l’accès non autorisé aux données
La détection des modifications de fichier non autorisées
Cela peut être réalisé avec certaines combinaisons d’outils.
Outils d’archivage et de compression
Outils de copie et de synchronisation
Systèmes de fichiers par le réseau
Supports d’enregistrement amovibles
L’interpréteur de commandes sécurisé
Le système d’authentification
Outils de système de contrôle de version
Outils de hachage et de chiffrement
Voici un résumé des outils d’archivage et de compression disponible sur le système Debian :
Tableau 10.1. Liste des outils d’archivage et de compression
paquet | popcon | taille | extension | commande | commentaire |
---|---|---|---|---|---|
tar
|
V:914, I:999 | 3152 | .tar |
tar (1) |
archiveur standard (standard de fait) |
cpio
|
V:489, I:998 | 1144 | .cpio |
cpio (1) |
archiveur de style UNIX System V, utiliser avec find (1) |
binutils
|
V:164, I:673 | 97 | .ar |
ar (1) |
archiveur pour la création de bibliothèques statiques |
fastjar
|
V:2, I:25 | 183 | .jar |
fastjar (1) |
archiveur pour Java (semblable à zip) |
pax
|
V:12, I:24 | 170 | .pax |
pax (1) |
nouvel archiveur standard POSIX, compromis entre tar et
cpio |
gzip
|
V:891, I:999 | 242 | .gz |
gzip (1), zcat (1), … |
utilitaire de compression GNU LZ77 (standard de fait) |
bzip2
|
V:147, I:973 | 122 | .bz2 |
bzip2 (1), bzcat (1), … |
utilitaire de transformée
par tri de blocs de Burrows-Wheeler permettant un taux de
compression plus élevé que gzip (1) (plus lent que
gzip avec une syntaxe similaire) |
lzma
|
V:2, I:27 | 149 | .lzma |
lzma (1) |
LZMA compression utility with higher compression
ratio than gzip (1) (deprecated) |
xz-utils
|
V:453, I:980 | 612 | .xz |
xz (1), xzdec (1), … |
utilitaire de compression XZ avec un plus haut
taux de compression que bzip2 (1) (plus lent que
gzip mais plus rapide que bzip2 ; le
remplaçant de LZMA utilitaire de compression) |
zstd
|
V:4, I:24 | 1902 | .zstd |
zstd (1), zstdcat (1), … |
Zstandard fast lossless compression utility |
p7zip
|
V:79, I:454 | 987 | .7z |
7zr (1), p7zip (1) |
archiveur de fichiers 7-Zip avec un haut taux de compression (compression LZMA) |
p7zip-full
|
V:102, I:469 | 4664 | .7z |
7z (1), 7za (1) |
archiveur de fichiers 7-Zip avec un haut taux de compression (compression LZMA et autres) |
lzop
|
V:10, I:85 | 164 | .lzo |
lzop (1) |
utilitaire de compression LZO avec de plus hautes
vitesses de compression et de décompression que gzip (1)
(plus faible taux de compression que gzip avec une
syntaxe similaire) |
zip
|
V:49, I:427 | 623 | .zip |
zip (1) |
InfoZIP : outil d’archive et de compression DOS |
unzip
|
V:132, I:792 | 385 | .zip |
unzip (1) |
InfoZIP : outil de désarchivage et de décompression DOS |
![]() |
Avertissement |
---|---|
Ne positionnez par la variable « |
L’archive tar
(1) utilise l’extension de fichier
« .tgz
» ou
« .tar.gz
».
L’archive tar
(1) avec compression xz utilise l’extension
de fichier « .txz
» ou
« .tar.xz
».
La méthode de compression habituelle des outils FOSS tels que tar
(1) a été modifiée
de la manière suivante : gzip
→
bzip2
→ xz
cp
(1), scp
(1) et
tar
(1) peuvent avoir certaines limitations pour des
fichiers spéciaux. cpio
(1) est plus souple.
cpio
(1) est conçu pour être utilisé avec
find
(1) et d’autres commandes et est adapté à la création
de scripts de sauvegarde car la partie correspondant à la sélection de
fichier du script peut être testée indépendamment.
La structure interne des fichiers de données de Libreoffice est composée de
fichiers « .jar
» qui peut être ouvert
également par unzip
.
The de-facto cross platform archive tool is zip
. Use it
as "zip -rX
" to attain the maximum compatibility. Use
also the "-s
" option, if the maximum file size matters.
Voici une liste d’outils simples de copie et de sauvegarde sur le système Debian :
Tableau 10.2. Liste des outils de copie et de synchronisation
paquet | popcon | taille | outil | fonction |
---|---|---|---|---|
coreutils
|
V:901, I:999 | 17478 | GNU cp | copier localement des fichiers et répertoires (« -a » pour récursif) |
openssh-client
|
V:809, I:997 | 4298 | scp | copier à distance des fichiers et des répertoires (client,
« -r » pour récursif) |
openssh-server
|
V:701, I:844 | 1567 | sshd | copier à distance des fichiers et des répertoires (serveur distant) |
rsync
|
V:311, I:564 | 677 | synchronisation et sauvegarde distantes unidirectionnelles | |
unison
|
V:3, I:16 | 14 | synchronisation et sauvegarde distantes bidirectionnelles |
Copier des fichiers avec rsync
(8) offres des
fonctionnalités plus riches que les autres méthodes.
algorithme de transfert delta qui n’envoie que la différence entre les fichiers source et les fichiers existants sur la destination
algorithme de vérification rapide (par défaut) recherchant les fichiers dont la taille ou l’heure de dernière modification a été modifiée
Les options « --exclude
» et
« --exclude-from
» sont semblables à celles de
tar
(1)
La syntaxe « un slash en fin de répertoire source » qui évite la création d’un niveau de répertoire supplémentaire à la destination.
![]() |
Astuce |
---|---|
Les outils de système de contrôle de version (VCS) de Tableau 10.11, « Liste d’outils pour les systèmes de contrôle de version » peuvent fonctionner comme outils de synchronisation et de copie multi-voies. |
Voici quelques manières d’archiver et de désarchiver le contenu entier du
répertoire « ./source
» en utilisant différents
outils.
GNU tar
(1) :
$ tar -cvJf archive.tar.xz ./source $ tar -xvJf archive.tar.xz
ou encore, comme suit :
$ find ./source -xdev -print0 | tar -cvJf archive.tar.xz --null -F -
cpio
(1) :
$ find ./source -xdev -print0 | cpio -ov --null > archive.cpio; xz archive.cpio $ zcat archive.cpio.xz | cpio -i
Voici quelques manières d’archiver et de désarchiver le contenu entier du
répertoire « ./source
» en utilisant différents
outils.
Copie locale du répertoire « ./source
» →
répertoire « /dest
»
Faire le copie distante du répertoire
« ./source
» de la machine locale → répertoire
« /dest
» situé sur la machine
« user@host.dom
»
rsync
(8) :
# cd ./source; rsync -aHAXSv . /dest # cd ./source; rsync -aHAXSv . user@host.dom:/dest
Vous pouvez, en remplacement, utiliser la syntaxe « un slash en fin du répertoire source ».
# rsync -aHAXSv ./source/ /dest # rsync -aHAXSv ./source/ user@host.dom:/dest
ou encore, comme suit :
# cd ./source; find . -print0 | rsync -aHAXSv0 --files-from=- . /dest # cd ./source; find . -print0 | rsync -aHAXSv0 --files-from=- . user@host.dom:/dest
GNU cp
(1) et openSSH scp
(1) :
# cd ./source; cp -a . /dest # cd ./source; scp -pr . user@host.dom:/dest
GNU tar
(1) :
# (cd ./source && tar cf - . ) | (cd /dest && tar xvfp - ) # (cd ./source && tar cf - . ) | ssh user@host.dom '(cd /dest && tar xvfp - )'
cpio
(1) :
# cd ./source; find . -print0 | cpio -pvdm --null --sparse /dest
Vous pouvez remplacer « .
» par
« truc
» dans tous les exemples comportant
« .
» pour copier les fichiers du répertoire
« ./source/truc
» vers le répertoire
« /dest/truc
».
Vous pouvez remplacer « .
» par le chemin
absolu « /chemin/vers/source/truc
» dans tous
les exemples comportant « .
» pour éviter
« cd ./source;
». Cela permet de copier les
fichiers vers différents emplacements selon les outils utilisés de la
manière suivante :
« /dest/truc
» : rsync
(8), GNU
cp
(1) et scp
(1)
« /dest/chemin/vers/source/truc
»: GNU
tar
(1) et cpio
(1)
![]() |
Astuce |
---|---|
|
find
(1) est utilisé pour la sélection de fichiers pour
les commandes d’archive et de copie (consultez Section 10.1.3, « Idiomes pour les archives » et Section 10.1.4, « Idiomes pour la copie ») ou pour xargs
(1)
(consultez Section 9.4.9, « Répéter une commande en bouclant entre des fichiers »). Cela
peut être amélioré en utilisant ces paramètres de commande.
La syntaxe de base de find
(1) peut être résumée comme
suit :
Ses paramètres conditionnels sont évalués de gauche à droite.
L’évaluation s’arrête lors que son résultat est déterminé.
Le « OU logique » (indiqué par
« -o
» entre les éléments conditionnels) a une
plus faible priorité que le « ET
logique » (indiqué par « -a
» ou rien
entre éléments conditionnels).
Le « NON logique » (indiqué par
« !
» avant un élément conditionnel) a une
priorité plus élevée que le « ET
logique ».
« -prune
» retourne toujours un VRAI logique et, si c’est un répertoire, la
recherche de fichier est arrêtée au-delà de ce point.
« -name
» correspond à la base du nom de
fichier avec les motifs génériques de l’interpréteur de commandes (voir
Section 1.5.6, « Motifs génériques (« glob ») de l’interpréteur de commandes ») mais il correspond aussi à son
« .
» de début avec des métacaractères comme
« *
» et « ?
»
(nouvelle fonctionnalité POSIX).
« -regex
» correspond au chemin complet par
défaut dans le style BRE Emacs (consultez
Section 1.6.2, « Expressions rationnelles »).
« -size
» correspond au fichier en se basant
sur la taille du fichier (valeur précédée de
« +
» pour plus grand et précédée de
« -
» pour plus petit)
« -newer
» correspond au fichier plus récent
que celui indiqué comme paramètre.
« -print0
» retourne toujours la valeur logique
VRAI et affiche sur la sortie standard le
nom de fichier en entier (terminé par le
caractère null).
find
(1) est souvent utilisé dans un style idiomatique
comme ce qui suit :
# find /path/to \ -xdev -regextype posix-extended \ -type f -regex ".*\.cpio|.*~" -prune -o \ -type d -regex ".*/\.git" -prune -o \ -type f -size +99M -prune -o \ -type f -newer /path/to/timestamp -print0
Cela signifie que les actions suivantes doivent être effectuées :
rechercher tous les fichiers en partant de
« /chemin/vers
» ;
limiter globalement sa recherche à l’intérieur du système de fichiers et utiliser ERE (consultez Section 1.6.2, « Expressions rationnelles ») ;
exclure les fichiers correspondant à l’expression rationnelle de
« .*\.cpio
» ou
« .*~
» de la recherche en arrêtant le
traitement ;
exclure les répertoires qui correspondent à l’expression rationnelle de
« .*/\.git
» de la recherche en arrêtant le
traitement ;
exclure les fichiers plus gros que 99 Megaoctets (unités de 1048576 octets) de la recherche en arrêtant le traitement ;
Afficher les noms de fichiers qui satisfont aux conditions de recherche
ci-dessus et qui sont plus récents que
« /chemin/vers/horodatage
».
Remarquez l’utilisation idiomatique de « -prune
-o
» pour exclure les fichiers dans l’exemple ci-dessus.
![]() |
Note |
---|---|
Pour les systèmes UNIX-like autre que
Debian, certaines options peuvent ne pas être prises en compte par
|
Lors du choix d’un support d’enregistrement de données informatiques destiné à l’archivage de données importantes, il faut faire attention à leurs limitations. Pour des petites sauvegardes de données personnelles, j’utilise des CD-R et des DVD-R provenant d’une grande marque et je les range dans un endroit frais, à l’ombre, sec et propre. (Les supports d’archive sur bande semblent être populaires pour les utilisations professionnelles).
![]() |
Note |
---|---|
Un coffre-fort anti-feu est destiné aux documents sur papier. La plupart des supports de stockage de données informatiques ont une tolérance en température inférieure à celle du papier. J’utilise en général plusieurs copies chiffrées stockées dans différents endroits sûrs. |
Durées de vie optimistes des moyens d’archivage trouvées sur le net (la plupart à partir d’informations des constructeurs).
100 ans et plus : papier non acide et encre
100 ans : stockage optique (CD/DVD, CD/DVD-R)
30 ans : supports magnétiques (bande, disquette)
20 ans : disque optique à changement de phase (CD-RW)
Cela ne prend pas en compte les défaillances mécaniques dues aux manipulations, etc.
Nombre de cycles d’écriture optimistes des moyens d’archivage trouvées sur le net (la plupart à partir d’informations des constructeurs).
plus de 250 000 : disque dur
plus de 10 000 cycles : mémoires Flash
1000 cycles : CD/DVD-RW
1 cycle : CD/DVD-R, papier
![]() |
Attention |
---|---|
Ces chiffres de durée de vie et de nombre de cycles ne devront pas être utilisés pour des décisions concernant l’enregistrement de données critiques. Veuillez consulter les informations spécifiques au produit fournies par le constructeur. |
![]() |
Astuce |
---|---|
Comme les CD/DVD-R et le papier n’ont qu’un cycle d’écriture de 1, ils évitent de manière inhérente le risque de perte de données par écrasement. C’est un avantage ! |
![]() |
Astuce |
---|---|
Si vous devez faire des sauvegardes fréquentes et rapides d’un gros volume de données, un disque dur sur une liaison réseau à haute vitesse peut être la seule option réaliste. |
Les périphériques d’enregistrement amovibles possibles sont les suivants.
Appareil photographique numérique
Lecteur de musique numérique
Ils peuvent être connectés à l’aide de n’importe quel moyen suivant.
Les environnements de bureau modernes comme GNOME et KDE peuvent monter ces
périphériques amovibles automatiquement sans entrée correspondante dans
« /etc/fstab
»
![]() |
Astuce |
---|---|
Les périphériques montés automatiquement pourraient avoir l’option de
montage « |
![]() |
Astuce |
---|---|
Le montage automatique sous les environnements de bureau modernes ne se
produit que lorsque ces périphériques amovibles ne se trouvent pas dans
« |
Le point de montage sous les environnements de bureau modernes est choisi
avec le nom
« /media/étiquette_disque
»,
il peut être personnalisé avec les outils suivants :
mlabel
(1) pour le système de fichiers FAT ;
genisoimage
(1) avec l’option
« -V
» pour le système de fichiers
ISO9660 ;
tune2fs
(1) avec l’option
« -L
» pour le système de fichiers ext2, ext3
ou ext4.
![]() |
Astuce |
---|---|
Le choix du codage doit être fourni comme option de montage (consultez Section 8.1.3, « Coder les noms de fichiers »). |
![]() |
Astuce |
---|---|
L'utilisation d'une interface graphique pour démonter un système de fichiers
peut supprimer son point de montage créé dynamiquement tel que
« |
Lors du partage de données avec d’autres systèmes à l’aide de périphériques de stockage amovibles, vous devez les formatez avec un système de fichiers pris en charge par les deux systèmes. Voici une liste de choix de systèmes de fichiers :
Tableau 10.3. Liste de choix de systèmes de fichiers pour des périphériques amovibles avec des scénarios typiques d’utilisation
filesystem name | typical usage scenario |
---|---|
FAT12 | partage de données sur disquettes entre plateformes (<32Mio) |
FAT16 | partage entre plateformes de données sur des périphériques semblables à des disques durs de faible capacité (<2Gio) |
FAT32 | partage entre plateformes de données sur périphériques semblables à des disques durs de grande capacité (<8Tio, pris en charge par plus récent que MS Windows95 OSR2) |
exFAT | cross platform sharing of data on the large hard disk like device (<512TiB, supported by WindowsXP, Mac OS X Snow Leopard 10.6.5, and Linux kernel since 5.4 release) |
NTFS | partage entre plateformes de données sur périphériques semblables à des disques durs de grande capacité (pris en charge de manière native par MS Windows NT et versions plus récentes; et pris en charge par NTFS-3G par l’intermédiaire de FUSE sous Linux) |
ISO9660 | partage entre plateformes de données sur CD-R et DVD+/-R |
UDF | écriture incrémentale de CD-R et de DVD+/-R (nouveau) |
MINIX | enregistrement efficace en matière d’espace disque de fichiers de données unix sur disquette |
ext2 | partage de données sur disque dur avec les anciens systèmes Linux |
ext3 | partage de données sur disque dur avec les anciens systèmes Linux |
ext4 | partage de données sur disque dur avec les systèmes Linux actuels |
btrfs | sharing of data on the hard disk like device with current Linux systems with read-only snapshots |
![]() |
Astuce |
---|---|
Consultez Section 9.9.1, « Chiffrement des disques amovibles à l’aide de dm-crypt/LUKS » pour le partage de données entre plateformes en utilisant le chiffrement au niveau du périphérique. |
Le système de fichiers FAT est pris en charge par la plupart des systèmes d’exploitation modernes et est assez utile pour l'échange des données par l’intermédiaire de supports du type disque dur amovible.
Pour le formatage de périphériques de type disque dur amovible pour l’échange de données entre plateformes avec un système de fichiers FAT, ce qui suit peut être un choix sûr :
les partitionner avec fdisk
(8),
cfdisk
(8) ou parted
(8) (consultez
Section 9.6.2, « Configuration de la partition du disque ») en une seule partition
primaire et la marquer comme suit :
type « 6 » pour FAT16 pour les supports faisant moins de 2Go.
type « c » pour FAT32 (LBA) pour les supports plus gros.
formater la partition primaire avec mkfs.vfat
(8) comme
suit :
simplement son nom de périphérique, par exemple
« /dev/sda1
», pour la FAT16
L’option explicite et le nom de périphérique, par exemple
« -F 32 /dev/sda1
», pour la FAT32
Lors de l’utilisation des systèmes de fichiers FAT ou ISO9660 pour le partage de données ce qui suit sera une précaution sûre :
Archiver d’abord les fichiers dans un fichier d’archive en utilisant
tar
(1) ou cpio
(1) afin de conserver
les noms de fichiers longs, les permissions de fichiers d’origine d’UNIX et
les informations de propriétaire.
Découper le fichier d’archive en éléments de moins de 2 Gio à l’aide de la
commande split
(1) afin de le protéger contre les
limitations de taille de fichier.
Chiffrer le fichier d’archive afin de sécuriser son contenu contre un accès non autorisé.
![]() |
Note |
---|---|
La taille maximum d’un fichier FAT, par conception, est de |
![]() |
Note |
---|---|
Microsoft lui-même ne recommande pas l’utilisation de FAT pour des disques ou des partitions de plus de 200 Mo. Microsoft met en avant ces limitations comme une utilisation inefficace de l’espace disque dans ses « Informations générales sur les systèmes de fichiers FAT, HPFS et NTFS ». Bien sûr, on peut normalement utiliser le système de fichiers ext4 pour Linux. |
![]() |
Astuce |
---|---|
Pour davantage d’informations sur les systèmes de fichiers et les accès aux systèmes de fichiers, veuillez consulter « Filesystems HOWTO ». |
Lors du partage de données avec d’autres systèmes au travers du réseau, vous devrez utiliser un service commun. Voici quelques éléments :
Tableau 10.4. Liste des services réseau à choisir avec le scénario typique d’utilisation
service réseau | description d’un scénario typique d’utilisation |
---|---|
SMB/CIFS système de fichiers monté avec Samba | partage de fichiers par l’intermédiaire de « Microsoft Windows
Network », consultez smb.conf (5) et le HOWTO et guide de référence
officiel de Samba 3.x.x ou le paquet samba-doc |
système de fichiers monté au travers du réseau NFS avec le noyau Linux | partager des fichiers par « UNIX/Linux Network », consultez
exports (5) et Linux
NFS-HOWTO |
service HTTP | partager des fichiers entre client et serveur web |
service HTTPS | partager des fichiers entre le client et le serveur web avec un chiffrement Secure Sockets Layer (SSL) ou Transport Layer Security (TLS) |
service FTP | partager des fichiers entre serveur et client FTP |
Bien que ces systèmes de fichiers montés au travers du réseau et les méthodes de transfert au travers du réseau soient assez pratiques pour partager des données, elles peuvent être non sûres. Leur connexion réseau doit être sécurisée par ce qui suit :
consultez aussi Section 6.5, « Autres serveurs d’applications réseau » et Section 6.6, « Autres clients d’applications réseau ».
Nous savons tous que les ordinateurs sont parfois victimes de pannes ou que des erreurs humaines provoquent des dommages au système et aux données. Les opérations de sauvegarde et de restauration sont les parties essentielles d’une administration système réussie. Vous serez victime, un jour ou l’autre, de tous les modes de défaillance possibles.
![]() |
Astuce |
---|---|
Mettez en place un système de sauvegardes simple et faites une sauvegarde fréquente de votre système. Avoir des données de sauvegarde est plus important que la qualité technique de votre méthode de sauvegarde. |
Il y a 3 facteurs-clé qui permettent de définir une méthode pratique de sauvegarde et de restauration.
Ce qu’il faut sauvegarder et restaurer :
les fichiers que vous avez directement créés : données de
« ~/
» ;
les fichiers de données créés par les applications que vous utilisez :
données de « /var/
» (sauf
« /var/cache/
»,
« /var/run/
» et
« /var/tmp/
») :
les fichiers de configuration du système : fichiers de
« /etc/
» ;
logiciels locaux : données se trouvant dans
« /usr/local/
» ou
« /opt/
» ;
informations concernant l’installation du système : un mémo en texte concernant les étapes-clés ((partition, …) ;
un jeu de données testé : confirmé par des opérations de restauration expérimentales réalisées à l’avance.
Comment sauvegarder et restaurer :
entreposer les données de manière sûre : protection des données contre la réécriture et les défaillances du système ;
sauvegardes fréquentes ! sauvegardes planifiées ;
sauvegardes redondantes : duplication (miroir) des données ;
processus indéréglable : sauvegarde facile en une seule commande.
Risques et coûts :
valeur des données perdues ;
ressources nécessaires pour effectuer les sauvegardes : humaines, matérielles, logicielles, …
mode de défaillance avec leur probabilité.
![]() |
Note |
---|---|
Ne sauvegardez pas le contenu des pseudo systèmes de fichiers se trouvant
dans |
Comme pour l’enregistrement sécurisé de données, les données doivent se trouver de préférences sur différentes partitions de disque ou sur des disques différents ou des machines différentes afin de résister à une corruption du système de fichiers. Les données importantes seront, de préférence écrites sur des supports à écriture unique tels que les CD/DVD-R afin de prévenir l’écrasement accidentel des données (consultez Section 9.8, « Les données binaires » pour la manière d’écrire sur le support d’enregistrement depuis la ligne de commandes de l’interpréteur. L’interface graphique de l’environnement de bureau GNOME vous donne un accès facile depuis le menu : « Places→CD/DVD Creator :»).
![]() |
Note |
---|---|
Il faudra peut-être arrêter certains démons d’applications comme le MTA (consultez Section 6.2.4, « Agent de transport de courrier électronique (« MTA ») ») lors de la sauvegarde des données. |
![]() |
Note |
---|---|
Vous devez prendre des précautions supplémentaires lors de la sauvegarde et
de la restauration des fichiers de données relatifs à l’identité comme
« |
![]() |
Note |
---|---|
Si vous faites tourner une tâche programmée (« cron » en tant que
processus d’utilisateur, vous devrez restaurer les fichiers de
« |
Voici une liste d’utilitaires de sauvegarde notables disponibles sur le système Debian :
Tableau 10.5. Liste de suites d’utilitaires de sauvegarde
paquet | popcon | taille | description |
---|---|---|---|
dump
|
V:1, I:6 | 352 | BSD 4.4 dump (8) et
restore (8) pour les systèmes de fichiers ext2/ext3/ext4. |
xfsdump
|
V:0, I:9 | 854 | sauvegarder et restaurer avec xfsdump (8) et
xfsrestore (8) pour le système de fichiers XFS sous GNU/Linux et IRIX |
backupninja
|
V:3, I:4 | 367 | système de sauvegarde meta-backup léger et extensible |
bacula-common
|
V:10, I:14 | 2158 | Bacula : sauvegarde, restauration et vérification par le réseau - fichiers communs |
bacula-client
|
I:3 | 183 | Bacula : sauvegarde, restauration et vérification par le réseau - métapaquet du client |
bacula-console
|
V:1, I:4 | 107 | Bacula : sauvegarde, restauration et vérification par le réseau - console en mode texte |
bacula-server
|
I:1 | 183 | Bacula : sauvegarde, restauration et vérification par le réseau - métapaquet du serveur |
amanda-common
|
V:1, I:2 | 10030 | Amanda : Advanced Maryland Automatic Network Disk Archiver (Libs). (Archiveur de disque par le réseau de Maryland avancé et automatique. |
amanda-client
|
V:1, I:2 | 1088 | Amanda : Advanced Maryland Automatic Network Disk Archiver (Client) |
amanda-server
|
V:0, I:0 | 1075 | Amanda : Advanced Maryland Automatic Network Disk Archiver (Serveur) |
backup-manager
|
V:1, I:1 | 571 | outil de sauvegarde en ligne de commandes |
backup2l
|
V:0, I:1 | 114 | outil de sauvegarde et restauration de faible maintenance pour des supports pouvant être montés (basé sur disque) |
backuppc
|
V:3, I:3 | 3183 | BackupPC est un système de hautes performances pour effectuer la sauvegarde de PC au niveau de l’entreprise (basé sur disques) |
duplicity
|
V:9, I:19 | 1834 | sauvegarde incrémentale (distante) |
flexbackup
|
V:0, I:0 | 243 | sauvegarde incrémentale (distante) |
rdiff-backup
|
V:6, I:14 | 733 | sauvegarde incrémentale (distante) |
restic
|
V:1, I:4 | 22540 | sauvegarde incrémentale (distante) |
slbackup
|
V:0, I:0 | 151 | sauvegarde incrémentale (distante) |
Les outils de sauvegarde ont chacun des objectifs particuliers.
Mondo Rescue est un système de sauvegarde qui facilite la restauration rapide d’un système complet depuis de CD/DVD etc. sans passer par le processus normal d’installation d’un système.
Bacula, Amanda et BackupPC sont des suites de sauvegardes ayant des fonctionnalités avancées qui sont orientées vers les sauvegardes fréquentes au travers du réseau.
Regular backups of user data can be realized by a simple script (Section 10.2.2, « Personal backup »).
Les outils de base décrits dans Section 10.1.1, « Outils d’archivage et de compression » et Section 10.1.2, « Outils de copie et de synchronisation » peuvent être utilisés pour faciliter la sauvegarde du système au moyen de scripts personnalisés. De tels scripts peuvent être améliorés comme suit :
Le paquet restic
permet les sauvegardes incrémentales
(distantes) .
le paquet rdiff-backup
permet les sauvegardes
incrémentales (distantes) ;
le paquet dump
facilite l’archivage et la restauration
d’un système de fichiers entier de manière incrémentielle et efficace.
![]() |
Astuce |
---|---|
Consultez les fichiers dans
« |
For a personal Debian desktop system running testing
suite, I only need to protect personal and critical data. I reinstall
system once a year anyway. Thus I see no reason to backup the whole system
or to install a full featured backup utility.
At the same time, it is very valuable to have frequent recent snapshots of personal data and system configuration, and occasional full backups of personal data.
I usually make these snapshots and backups with a simple shell script bss. This script is a short shell which uses standard
utilities: btrfs subvolume snapshot
,
rsync
, cp
.
![]() |
Astuce |
---|---|
Vous pouvez récupérer les données de configuration de debconf avec
« |
L’infrastructure de sécurité des données est fournie par la combinaison d’un outil de chiffrement des données, d’un outil de condensé de messages et d’un outil de signature.
Tableau 10.6. Liste des outils d’une infrastructure de sécurité des données
paquet | popcon | taille | commande | description |
---|---|---|---|---|
gnupg
|
V:498, I:942 | 864 | gpg (1) |
GNU Privacy Guard - outil de signature et de chiffrement OpenPGP |
gpgv
|
V:890, I:999 | 882 | gpgv (1) |
GNU Privacy Guard - outil de vérification de signature |
paperkey
|
V:1, I:13 | 58 | paperkey (1) |
extraire seulement l’information secrète de clés secrètes OpenPGP |
cryptsetup
|
V:41, I:77 | 407 | cryptsetup (8), … |
utilities for dm-crypt block device encryption supporting LUKS |
coreutils
|
V:901, I:999 | 17478 | md5sum (1) |
calculer et vérifier un condensé MD5 de message |
coreutils
|
V:901, I:999 | 17478 | sha1sum (1) |
calculer et vérifier un condensé SHA1 de message |
openssl
|
V:814, I:994 | 1465 | openssl (1ssl) |
calculer un condensé de message avec « openssl
dgst » (OpenSSL) |
See Section 9.9, « Astuces de chiffrement des données » on dm-crypt and ecryptfs which implement automatic data encryption infrastructure via Linux kernel modules.
Voici les commandes de GNU Privacy Guard pour la gestion de base des clés :
Tableau 10.7. Liste des commandes de GNU Privacy Guard pour la gestion des clés
commande | description |
---|---|
gpg --gen-key |
générer une nouvelle clé |
gpg --gen-revoke ID_de_mon_utilisateur |
générer une clé de révocation pour ID_de_mon_utilisateur |
gpg --edit-key ID_utilisateur |
éditer la clé de manière interactive, « help » pour obtenir de l’aide |
gpg -o fichier --export |
exporter toutes les clés vers fichier |
gpg --import fichier |
importer toutes les clés depuis fichier |
gpg --send-keys ID_utilisateur |
envoyer la clé de ID_utilisateur vers le serveur de clés |
gpg --recv-keys ID_utilisateur |
recevoir la clé de ID_utilisateur du serveur de clés |
gpg --list-keys ID_utilisateur |
afficher la liste des clés de ID_utilisateur |
gpg --list-sigs ID_utilisateur |
afficher la liste des signatures de ID_utilisateur |
gpg --check-sigs ID_utilisateur |
vérifier la signature de ID_utilisateur |
gpg --fingerprint ID_utilisateur |
vérifier l’empreinte de ID_utilisateur |
gpg --refresh-keys |
mettre à jour le porte-clé local |
Voici la signification du code de confiance
Tableau 10.8. Liste de la signification des codes de confiance
code | description de la confiance |
---|---|
- |
pas de confiance d’utilisateur assignée/pas encore calculée |
e |
échec du calcul de la confiance |
q |
pas assez d’informations pour le calcul |
n |
ne jamais faire confiance à cette clé |
m |
confiance marginale |
f |
confiance complète |
u |
confiance ultime |
Ce qui suit permet d’envoyer ma clé
« 1DD8D791
» vers le serveur de clé populaire
« hkp://keys.gnupg.net
» :
$ gpg --keyserver hkp://keys.gnupg.net --send-keys 1DD8D791
Une bonne configuration de serveur de clés dans
« ~/.gnupg/gpg.conf
» (ou à l’ancien
emplacement « ~/.gnupg/options
») contient ce
qui suit :
keyserver hkp://keys.gnupg.net
Ce qui suit obtient les clés inconnues du serveur de clés :
$ gpg --list-sigs --with-colons | grep '^sig.*\[User ID not found\]' |\ cut -d ':' -f 5| sort | uniq | xargs gpg --recv-keys
Il y avait un bogue dans OpenPGP
Public Key Server (pre version 0.9.6) qui corrompait les clés ayant
plus de 2 sous-clés. Le paquet du serveur gnupg
(>1.2.1-2) peut gérer ces sous-clés corrompues. Consultez
gpg
(1) sous l’option
« --repair-pks-subkey-bug
».
Voici des exemples d’utilisation des commandes de GNU Privacy Guard sur des fichiers :
Tableau 10.9. Liste des commandes de GNU Privacy Guard sur des fichiers
commande | description |
---|---|
gpg -a -s fichier |
signer « fichier » dans un fichier ASCII blindé fichier.asc |
gpg --armor --sign fichier |
, , |
gpg --clearsign fichier |
signer un fichier en clair |
gpg --clearsign fichier|mail truc@example.org |
envoyer un message signé en clair à truc@example.org |
gpg --clearsign --not-dash-escaped fichier_rustine |
signer en clair un fichier_rustine |
gpg --verify fichier |
vérifier fichier signé en texte clair |
gpg -o fichier.sig -b fichier |
créer une signature détachée |
gpg -o fichier.sig --detach-sig fichier |
, , |
gpg --verify fichier.sig fichier |
vérifier un fichier avec fichier.sig |
gpg -o fichier_chiffré.gpg -r nom -e fichier |
chiffrement par clé publique destiné au « nom » depuis le « fichier » vers « fichier_chiffré.gpg » binaire |
gpg -o fichier_chiffré.gpg --recipient nom --encrypt
fichier |
, , |
gpg -o fichier_chiffré.asc -a -r nom -e fichier |
chiffrement par clé publique destiné au « nom » depuis le « fichier » vers le fichier ASCII blindé « fichier_chiffré.asc » |
gpg -o fichier_chiffré.gpg -c fichier |
chiffrement symétrique depuis « fichier » vers « fichier_chiffré.gpg » |
gpg -o fichier_chiffré.gpg --symmetric fichier |
, , |
gpg -o fichier_chiffré.asc -a -c fichier |
chiffrement symétrique prévu destiné au « nom » depuis le « fichier » vers le fichier ASCII blindé « fichier_chiffré.asc » |
gpg -o fichier -d fichier_crypt.gpg -r nom |
déchiffrement |
gpg -o fichier --decrypt fichier_chiffré.gpg |
, , |
Ajoutez ce qui suit à « ~/.muttrc
» afin
d’éviter que GnuPG qui est lent ne démarre automatiquement, tout en
permettant son utilisation en entrant « S
»
depuis l’index du menu :
macro index S ":toggle pgp_verify_sig\n" set pgp_verify_sig=no
The gnupg
plugin let you run GnuPG transparently for
files with extension ".gpg
", ".asc
",
and ".ppg
".[4]
$ sudo aptitude install vim-scripts $ echo "packadd! gnupg" >> ~/.vim/vimrc
md5sum
(1) fournit un utilitaire permettant de créer un
fichier de résumé en utilisant la méthode se trouvant dans rfc1321 et en l’utilisant pour vérifier chaque
fichier qu’il contient.
$ md5sum foo bar >baz.md5 $ cat baz.md5 d3b07384d113edec49eaa6238ad5ff00 foo c157a79031e1c40f85931829bc5fc552 bar $ md5sum -c baz.md5 foo: OK bar: OK
![]() |
Note |
---|---|
Le calcule de somme de contrôle MD5 consomme moins de ressources processeur que celles utilisées pour le chiffrement des signatures en utilisant GNU Privacy Guard (GnuPG). Habituellement, pour s’assurer de l’intégrité des données, seul le résumé de plus haut niveau est signé par chiffrement. |
Il existe de nombreux outils pour fusionner du code source. Les commandes qui suivent ont attiré mon attention :
Tableau 10.10. Liste d’outils destinés à fusionner du code source
paquet | popcon | taille | commande | description |
---|---|---|---|---|
patch
|
V:123, I:721 | 248 | patch (1) |
appliquer un fichier de différences (« diff ») à un original |
vim
|
V:102, I:404 | 3286 | vimdiff (1) |
comparer deux fichiers côte à côte dans vim |
imediff
|
V:0, I:0 | 170 | imediff (1) |
interactive full screen 2/3-way merge tool |
meld
|
V:14, I:38 | 3065 | meld (1) |
comparer et fusionner des fichiers (GTK) |
wiggle
|
V:0, I:0 | 174 | wiggle (1) |
appliquer les rustines rejetées |
diffutils
|
V:883, I:993 | 1598 | diff (1) |
comparer des fichiers ligne à ligne |
diffutils
|
V:883, I:993 | 1598 | diff3 (1) |
comparer et fusionner trois fichiers ligne par ligne |
quilt
|
V:3, I:32 | 788 | quilt (1) |
gérer une série de rustines |
wdiff
|
V:8, I:69 | 644 | wdiff (1) |
afficher les différences de mots entre deux fichiers texte |
diffstat
|
V:14, I:146 | 81 | diffstat (1) |
afficher un histogramme des modifications apportées par le fichier de différences |
patchutils
|
V:16, I:143 | 232 | combinediff (1) |
créer une rustine (patch) cumulative à partir de deux rustines incrémentales |
patchutils
|
V:16, I:143 | 232 | dehtmldiff (1) |
extraire un fichier de différences d’une page HTML |
patchutils
|
V:16, I:143 | 232 | filterdiff (1) |
extraire ou exclure des différences d’un fichier de différences |
patchutils
|
V:16, I:143 | 232 | fixcvsdiff (1) |
corriger les fichiers de différences créés par CVS que
patch (1) interprète mal |
patchutils
|
V:16, I:143 | 232 | flipdiff (1) |
échanger l’ordre de deux rustines |
patchutils
|
V:16, I:143 | 232 | grepdiff (1) |
afficher quels sont les fichiers modifiés par une rustine correspondant un une expression rationnelle |
patchutils
|
V:16, I:143 | 232 | interdiff (1) |
afficher les différences entre deux fichiers de différence unifiés |
patchutils
|
V:16, I:143 | 232 | lsdiff (1) |
afficher quels sont les fichiers modifiés par une rustine |
patchutils
|
V:16, I:143 | 232 | recountdiff (1) |
recalculer les nombres et les décalages dans un contexte unifié de fichiers de différences |
patchutils
|
V:16, I:143 | 232 | rediff (1) |
corriger les décalages et les nombres d’un fichier de différences édité manuellement |
patchutils
|
V:16, I:143 | 232 | splitdiff (1) |
séparer les rustines incrémentales |
patchutils
|
V:16, I:143 | 232 | unwrapdiff (1) |
réparer les correctifs dont les mots ont été coupés |
dirdiff
|
V:0, I:2 | 166 | dirdiff (1) |
afficher les différences et fusionner les modifications entre deux arbres de répertoires |
docdiff
|
V:0, I:0 | 555 | docdiff (1) |
comparer deux fichiers mot par mot ou caractère par caractère |
makepatch
|
V:0, I:0 | 102 | makepatch (1) |
créer des fichiers de rustines étendus |
makepatch
|
V:0, I:0 | 102 | applypatch (1) |
appliquer des fichiers de rustines étendus |
La procédure suivante vous permet d'extraire les différences entre deux
fichiers sources et créer un fichier de différences unifié
« fichier.patch0
» ou
« fichier.patch1
» selon l’emplacement du
fichier.
$ diff -u file.old file.new > file.patch0 $ diff -u old/file new/file > file.patch1
Le fichier de différences (« diff » (encore appelé fichier « patch » ou rustine) est utilisé pour envoyer une mise à jour de programme. Celui qui reçoit applique cette mise à jour à un autre fichier de la manière suivante :
$ patch -p0 file < file.patch0 $ patch -p1 file < file.patch1
If you have two versions of a source code, you can perform 2-way merge
interactively using imediff
(1) by the following.
$ imediff -o file.merged file.old file.new
If you have three versions of a source code, you can perform 3-way merge
interactively using imediff
(1) by the following.
$ imediff -o file.merged file.yours file.base file.theirs
The version control systems (VCS) is sometimes known as the revision control system (RCS), or the software configuration management (SCM).
Git is the tool of choice these days since Git can do everything for both local and remote source code management.
Debian provides free Git services via Debian Salsa service. Its documentation can be found at https://wiki.debian.org/Salsa .
Here is a summary of the notable VCS on the Debian system.
Tableau 10.11. Liste d’outils pour les systèmes de contrôle de version
paquet | popcon | taille | outil | type du VCS | commentaire |
---|---|---|---|---|---|
git
|
V:312, I:494 | 36515 | Git | distribué | DVCS rapide en C (utilisé par le noyau de Linux et d’autres) |
gitk
|
V:5, I:41 | 1749 | Git | distribué | Interface graphique d’affichage d’une arborescence de dépôt VCS (Git) |
mercurial
|
V:6, I:44 | 1053 | Mercurial | distribué | DVCS en Python avec un peu de C |
darcs
|
V:0, I:7 | 23159 | Darcs | distribué | DVCS avec une algèbre intelligente des rustines (lent) |
bzr
|
V:1, I:15 | 28 | Bazaar | distribué | DVCS influenced by tla written in Python (historic) |
tla
|
V:0, I:2 | 1011 | GNU arch | distribué | DVCS mainly by Tom Lord (historic) |
subversion
|
V:18, I:104 | 4873 | Subversion | distant | "CVS done right", newer standard remote VCS (historic) |
cvs
|
V:4, I:38 | 4620 | CVS | distant | previous standard remote VCS (historic) |
tkcvs
|
V:0, I:1 | 1498 | CVS, … | distant | Interface graphique d’affichage d’une arborescence de dépôt VCS (CVS, Subversion, RCS) |
rcs
|
V:3, I:19 | 562 | RCS | local | "Unix SCCS done right" (historic) |
cssc
|
V:0, I:2 | 2044 | CSSC | local | clone of the Unix SCCS (historic) |
Vous pourrez définir certains éléments de configuration globaux, comme votre
nom et votre adresse de courriel utilisée par Git, dans
« ~/.gitconfig
» de la manière suivante :
$ git config --global user.name "Name Surname" $ git config --global user.email yourname@example.com
Si vous avez l’habitude d’utiliser les commandes de CVS ou de Subversion, vous pourrez définir certains alias de commandes comme suit :
$ git config --global alias.ci "commit -a" $ git config --global alias.co checkout
Vous pouvez vérifier votre configuration globale de la manière suivante :
$ git config --global --list
Here is an overview of main Git commands.
Tableau 10.12. Comparaison des commandes natives de VCS
Git command | fonction |
---|---|
git init |
créer le dépôt (local) |
git clone |
clone the remote repository as the working tree |
git pull |
mettre à jour l’arborescence de travail depuis le dépôt distant |
git add . |
ajouter des fichiers de l’arborescence de travail vers le VCS |
git rm |
supprimer du VCS des fichiers de l’arborescence de travail |
git commit -a |
déposer des modifications sur le dépôt local |
git push |
mettre à jour le dépôt distant à l’aide du dépôt local |
git status |
afficher l’état de l’arborescence de travail d’après le VCS |
git diff |
diff dépôt_de_référence arborescence_de_travail |
git repack -a -d; git prune |
réempaqueter le dépôt local en un seul paquet |
gitk |
Interface graphique d’affichage de l’arborescence d’un dépôt VCS |
Tableau 10.13. Liste des paquets et des commandes relatifs à git
paquet | popcon | taille | commande | description |
---|---|---|---|---|
git-doc
|
I:14 | 12063 | N/A | Documentation officielle de git |
gitmagic
|
I:1 | 721 | N/A | « Git Magic », le guide le plus facile à comprendre pour Git |
git
|
V:312, I:494 | 36515 | git (7) |
Git, système de contrôle de version rapide, évolutif et distribué |
gitk
|
V:5, I:41 | 1749 | gitk (1) |
Interface graphique de navigateur de dépôt Git avec historique |
git-gui
|
V:1, I:23 | 2343 | git-gui (1) |
Interface graphique pour Git (pas d’historique) |
git-email
|
V:0, I:11 | 993 | git-send-email (1) |
envoyer une série de rustines sous forme de courriel à partir de Git |
git-buildpackage
|
V:1, I:11 | 4187 | git-buildpackage (1) |
automatise la mise en paquet Debian avec Git |
dgit
|
V:0, I:1 | 496 | dgit (1) |
git interoperability with the Debian archive |
imediff
|
V:0, I:0 | 170 | git-ime (1) |
interactive git commit split helper tool |
stgit
|
V:0, I:0 | 603 | stg (1) |
quilt par-dessus git (Python) |
![]() |
Attention |
---|---|
L’appel d’une sous-commande |
![]() |
Astuce |
---|---|
With |
![]() |
Astuce |
---|---|
When you want to go back to the clean working directory without loosing the
current state of the working directory, you can use " |
![]() |
Astuce |
---|---|
If there is a executable file |
![]() |
Astuce |
---|---|
GUI tools such as |
Vous pouvez enregistrer vous-même un historique chronologique de la
configuration en utilisant les outils Git. Voici
un exemple simple, pour vous exercer, d’enregistrement du contenu de
« /etc/apt/
».
$ cd /etc/apt/ $ sudo git init $ sudo chmod 700 .git $ sudo git add . $ sudo git commit -a
Dépôt (« commit ») d’une configuration avec sa description
Effectuez les modifications dans les fichiers de configuration.
$ cd /etc/apt/ $ sudo git commit -a
Déposez (« commit ») la configuration avec sa description et retournez à vos occupations habituelles.
$ cd /etc/apt/ $ sudo gitk --all
Vous avez avec vous l’historique complet de la configuration.
![]() |
Note |
---|---|
|
![]() |
Note |
---|---|
La commande « |
![]() |
Astuce |
---|---|
Pour une configuration plus complète de l’enregistrement de l’historique de
configuration, voyez le paquet |
Consultez ce qui suit.
page de manuel : git(1)
(/usr/share/doc/git-doc/git.html
)
Manuel de l’utilisateur de Git
(/usr/share/doc/git-doc/user-manual.html
)
Un tutoriel d’introduction à
git « A tutorial introduction to git »
(/usr/share/doc/git-doc/gittutorial.html
)
Un tutoriel d’introduction à
git : deuxième partie « A tutorial introduction to git:
part two »
(/usr/share/doc/git-doc/gittutorial-2.html
)
Everyday GIT With 20 Commands
Or So (/usr/share/doc/git-doc/giteveryday.html
)
La magie de Git « Git Magic »
(/usr/share/doc/gitmagic/html/index.html
)
Les commandes git-gui
(1) et gitk
(1)
rendent très facile l’utilisation de Git.
![]() |
Avertissement |
---|---|
Ne pas utiliser d'espaces dans la chaîne de balise même si certains outils
comme |