Administrateur Linux - Sauvegarde et restauration

Avant d'explorer les méthodes propres à CentOS pour déployer un plan de sauvegarde standard, examinons d'abord les considérations typiques pour une politique de sauvegarde de niveau standard. La première chose à laquelle nous voulons nous habituer est la3-2-1 backup rule.

3-2-1 Stratégie de sauvegarde

Dans toute l'industrie, vous entendrez souvent le terme modèle de sauvegarde 3-2-1. C'est une très bonne approche à vivre lors de la mise en œuvre d'un plan de sauvegarde. 3-2-1 est défini comme suit:3copies de données; par exemple, nous pouvons avoir la copie de travail; une copie placée sur le serveur CentOS conçu pour la redondance à l'aide de rsync; et les sauvegardes USB tournées hors site sont effectuées à partir des données du serveur de sauvegarde.2différents supports de sauvegarde. Nous aurions en fait trois supports de sauvegarde différents dans ce cas: la copie de travail sur un SSD d'un ordinateur portable ou d'un poste de travail, les données du serveur CentOS sur une baie RADI6 et les sauvegardes hors site placées sur des clés USB.1copie des données hors site; nous faisons tourner les clés USB hors site tous les soirs. Une autre approche moderne peut être un fournisseur de sauvegarde dans le cloud.

Récupération du système

Un plan de restauration sans système d'exploitation est simplement un plan établi par un administrateur CentOS pour mettre en ligne des systèmes vitaux avec toutes les données intactes. En supposant une panne de système à 100% et la perte de tout le matériel système antérieur, un administrateur doit avoir un plan pour atteindre un temps de fonctionnement avec des données utilisateur intactes, ce qui coûte un temps d'arrêt minimal. Le noyau monolithique utilisé sous Linux rend en fait les restaurations bare metal à l'aide d'images système beaucoup plus faciles que Windows. Où Windows utilise une architecture micro-noyau.

Une restauration complète des données et une restauration sans système d'exploitation sont généralement effectuées grâce à une combinaison de méthodes, notamment des images disque de production configurées et fonctionnelles des principaux serveurs opérationnels, des sauvegardes redondantes des données utilisateur respectant la règle 3-2-1. Même certains fichiers sensibles qui peuvent être stockés dans un coffre-fort sécurisé et ignifuge avec un accès limité au personnel de confiance de l'entreprise.

Un plan de restauration et de récupération de données bare metal multiphase utilisant des outils CentOS natifs peut consister en:

  • dd pour créer et restaurer des images disque de production des serveurs configurés

  • rsync pour effectuer des sauvegardes incrémentielles de toutes les données utilisateur

  • tar & gzip pour stocker des sauvegardes cryptées de fichiers avec des mots de passe et des notes d'administrateurs. Généralement, cela peut être mis sur une clé USB, crypté et verrouillé dans un coffre-fort auquel un Senior Manager accède. En outre, cela garantit que quelqu'un d'autre connaîtra les informations de sécurité vitales si l'administrateur actuel gagne la loterie et disparaît sur une île ensoleillée quelque part.

Si un système tombe en panne en raison d'une défaillance matérielle ou d'un sinistre, voici les différentes phases des opérations de restauration:

  • Créez un serveur fonctionnel avec une image bare metal configurée

  • Restaurer les données sur le serveur de travail à partir des sauvegardes

  • Avoir un accès physique aux informations d'identification nécessaires pour effectuer les deux premières opérations

Utiliser rsync pour les sauvegardes de niveau fichier

rsync est un excellent utilitaire pour synchroniser les répertoires de fichiers localement ou vers un autre serveur. rsync a été utilisé pendant des années par les administrateurs système, il est donc très raffiné pour la sauvegarde des données. De l'avis de l'auteur, l'une des meilleures fonctionnalités de la synchronisation est sa capacité à être scriptée à partir de la ligne de commande.

Dans ce tutoriel, nous aborderons rsync de différentes manières -

  • Explorez et parlez de certaines options courantes
  • Créer des sauvegardes locales
  • Créer des sauvegardes à distance via SSH
  • Restaurer les sauvegardes locales

rsyncest nommé pour son objectif: Remote Sync et est à la fois puissant et flexible d'utilisation.

Voici une sauvegarde à distance rsync de base sur ssh -

MiNi:~ rdc$ rsync -aAvz --progress ./Desktop/ImportantStuff/ 
[email protected]:home/rdc/ Documents/RemoteStuff/
[email protected]'s password:
sending incremental file list
   6,148 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=23/25)
2017-02-14 16_26_47-002 - Veeam_Architecture001.png
   33,144 100%   31.61MB/s    0:00:00 (xfr#2, to-chk=22/25)
A Guide to the WordPress REST API | Toptal.pdf
   892,406 100%   25.03MB/s    0:00:00 (xfr#3, to-chk=21/25)
Rick Cardon Technologies, LLC..webloc
   77 100%    2.21kB/s    0:00:00 (xfr#4, to-chk=20/25)
backbox-4.5.1-i386.iso
   43,188,224   1%    4.26MB/s    0:08:29
sent 2,318,683,608 bytes  received 446 bytes  7,302,941.90 bytes/sec
total size is 2,327,091,863  speedup is 1.00
MiNi:~ rdc$

La synchronisation suivante a envoyé près de 2,3 Go de données sur notre réseau local. L'intérêt de rsync est qu'il fonctionne de manière incrémentielle au niveau du bloc, fichier par fichier. Cela signifie que si nous ne modifions que deux caractères dans un fichier texte de 1 Mo, seuls un ou deux blocs seront transférés sur le réseau local lors de la prochaine synchronisation!

En outre, la fonction incrémentielle peut être désactivée en faveur d'une plus grande bande passante réseau utilisée pour une utilisation moindre du processeur. Cela peut s'avérer utile si vous copiez constamment plusieurs fichiers de base de données de 10 Mo toutes les 10 minutes sur un Backup-Lan dédié de 1 Go. Le raisonnement est le suivant: ceux-ci changeront toujours et transmettront de manière incrémentielle toutes les 10 minutes et peuvent taxer la charge du CPU distant. Étant donné que la charge totale de transfert ne dépassera pas 5 minutes, nous souhaitons peut-être simplement synchroniser les fichiers de la base de données dans leur intégralité.

Voici les commutateurs les plus courants avec rsync -

rsync syntax:
rsync [options] [local path] [[remote host:remote path] or [target path

Commutateur action
-une Mode d'archivage et suppose -r, -p, -t, -g, -l
-ré Synchroniser uniquement l'arborescence de répertoires, pas de fichiers
-r Récursif dans le répertoire
-l Copier les liens symboliques sous forme de liens symboliques
-p Conserver les autorisations
-g Préserver le groupe
-v Sortie verbeuse
-z Compresser via le lien réseau
-X Préserver les attributs étendus
-UNE Préserver les ACL
-t Conserver les horodatages
-W Transférer le fichier entier, pas des blocs incrémentiels
-u Ne pas écraser les fichiers sur la cible
--le progrès Afficher la progression du transfert
--effacer Supprimer les anciens fichiers sur la cible
--max-taille = XXX Taille maximale du fichier à synchroniser

Quand utiliser rsync

Ma préférence personnelle pour rsync est lors de la sauvegarde de fichiers d'un hôte source vers un hôte cible. Par exemple, tous les répertoires personnels pour la récupération de données ou même hors site et dans le cloud pour la récupération après sinistre.

Sauvegarde locale avec rsync

Nous avons déjà vu comment transférer des fichiers d'un hôte à un autre. La même méthode peut être utilisée pour synchroniser les répertoires et les fichiers localement.

Faisons une sauvegarde incrémentielle manuelle de / etc / dans le répertoire de notre utilisateur racine.

Tout d'abord, nous devons créer un répertoire off ~ / root pour la sauvegarde synchronisée -

[[email protected] rdc]# mkdir /root/etc_baks

Ensuite, assurez-vous qu'il y a suffisamment d'espace disque disponible.

[[email protected] rdc]# du -h --summarize /etc/ 
49M    /etc/
 
[[email protected] rdc]# df -h 
Filesystem           Size     Used     Avail    Use%     Mounted on 
/dev/mapper/cl-root   43G      15G        28G    35%         /

Nous sommes bons pour synchroniser tout notre répertoire / etc / -

rsync -aAvr /etc/ /root/etc_baks/

Notre répertoire synchronisé / etc / -

[[email protected] etc_baks]# ls -l ./
total 1436
drwxr-xr-x.   3 root root      101 Feb  1 19:40 abrt
-rw-r--r--.   1 root root       16 Feb  1 19:51 adjtime
-rw-r--r--.   1 root root     1518 Jun  7  2013 aliases
-rw-r--r--.   1 root root    12288 Feb 27 19:06 aliases.db
drwxr-xr-x.   2 root root       51 Feb  1 19:41 alsa
drwxr-xr-x.   2 root root     4096 Feb 27 17:11 alternatives
-rw-------.   1 root root      541 Mar 31  2016 anacrontab
-rw-r--r--.   1 root root       55 Nov  4 12:29 asound.conf
-rw-r--r--.   1 root root        1 Nov  5 14:16 at.deny
drwxr-xr-x.   2 root root       32 Feb  1 19:40 at-spi2
--{ condensed output }--

Maintenant, faisons une rsync incrémentielle -

[[email protected] etc_baks]# rsync -aAvr --progress  /etc/ /root/etc_baks/
sending incremental file list

test_incremental.txt 
   0 100%    0.00kB/s    0:00:00 (xfer#1, to-check=1145/1282)
   
sent 204620 bytes  received 2321 bytes  413882.00 bytes/sec
total size is 80245040  speedup is 387.77

[[email protected] etc_baks]#

Seul notre fichier test_incremental.txt a été copié.

Sauvegardes différentielles à distance avec rsync

Faisons notre première sauvegarde complète rsync sur un serveur avec un plan de sauvegarde déployé. Cet exemple sauvegarde en fait un dossier sur un poste de travail Mac OS X sur un serveur CentOS. Un autre grand aspect de rsync est qu'il peut être utilisé sur n'importe quelle plateforme sur laquelle rsync a été porté.

MiNi:~ rdc$ rsync -aAvz Desktop/ImportanStuff/
[email protected]:Documents/RemoteStuff
[email protected]'s password:
sending incremental file list
./
A Guide to the WordPress REST API | Toptal.pdf
Rick Cardon Tech LLC.webloc
VeeamDiagram.png
backbox-4.5.1-i386.iso
dhcp_admin_script_update.py
DDWRT/
DDWRT/.DS_Store
DDWRT/ddwrt-linksys-wrt1200acv2-webflash.bin
DDWRT/ddwrt_mod_notes.docx
DDWRT/factory-to-ddwrt.bin
open_ldap_config_notes/
open_ldap_config_notes/ldap_directory_a.png
open_ldap_config_notes/open_ldap_notes.txt
perl_scripts/
perl_scripts/mysnmp.pl
php_scripts/
php_scripts/chunked.php
php_scripts/gettingURL.php
sent 2,318,281,023 bytes  received 336 bytes  9,720,257.27 bytes/sec
total size is 2,326,636,892  speedup is 1.00
MiNi:~ rdc$

Nous avons maintenant sauvegardé un dossier d'un poste de travail sur un serveur exécutant un volume RAID6 avec des supports de reprise après sinistre tournés stockés hors site. L'utilisation de rsync nous a donné une sauvegarde 3-2-1 standard avec un seul serveur disposant d'une matrice de disques redondants coûteuse et de sauvegardes différentielles en rotation.

Maintenant, faisons une autre sauvegarde du même dossier en utilisant rsync après qu'un seul nouveau fichier nommé test_file.txt a été ajouté.

MiNi:~ rdc$ rsync -aAvz Desktop/ImportanStuff/
[email protected]:Documents/RemoteStuff 
[email protected]'s password:  
sending incremental file list 
 ./ 
test_file.txt

sent 814 bytes  received 61 bytes  134.62 bytes/sec
total size is 2,326,636,910  speedup is 2,659,013.61
MiNi:~ rdc$

Comme vous pouvez le voir, seul le nouveau fichier a été livré au serveur via rsync . La comparaison différentielle a été effectuée fichier par fichier.

Voici quelques points à noter: Cela ne copie que le nouveau fichier: test_file.txt, car c'était le seul fichier avec des modifications. rsync utilise ssh. Nous n'avons jamais eu besoin d'utiliser notre compte root sur l'une ou l'autre des machines.

Simple, puissant et efficace, rsync est idéal pour sauvegarder des dossiers entiers et des structures de répertoires. Cependant, rsync en lui-même n'automatise pas le processus. C'est là que nous devons fouiller dans notre boîte à outils et trouver le meilleur, petit et simple outil pour le travail.

Pour automatiser les sauvegardes rsync avec cronjobs , il est essentiel que les utilisateurs SSH soient configurés à l'aide de clés SSH pour l'authentification. Ceci combiné avec les cronjobs permet à rsync d'être fait automatiquement à des intervalles de temps.

Utiliser DD pour les images de récupération Bare Metal bloc par bloc

DD est un utilitaire Linux qui existe depuis l'aube du noyau Linux rencontrant les utilitaires GNU.

dd en termes simples copie une image d'une zone de disque sélectionnée. Fournit ensuite la possibilité de copier des blocs sélectionnés d'un disque physique. Donc, à moins que vous n'ayez des sauvegardes, une fois que dd écrit sur un disque, tous les blocs sont remplacés. La perte de données précédentes dépasse les capacités de récupération pour une récupération de données de niveau professionnel, même très coûteuse.

L'ensemble du processus de création d'une image système amorçable avec dd est le suivant:

  • Démarrez à partir du serveur CentOS avec une distribution linux amorçable
  • Trouvez la désignation du disque amorçable à imager
  • Décidez de l'emplacement où l'image de récupération sera stockée
  • Trouvez la taille de bloc utilisée sur votre disque
  • Démarrez l'opération d'image dd

Dans ce tutoriel, par souci de temps et de simplicité, nous allons créer une image ISO de l'enregistrement master-boot à partir d'une machine virtuelle CentOS. Nous stockerons ensuite cette image hors site. Dans le cas où notre MBR est corrompu et doit être restauré, le même processus peut être appliqué à un disque ou une partition amorçable entier. Cependant, le temps et l'espace disque nécessaires sont vraiment un peu exagérés pour ce didacticiel.

Il est recommandé aux administrateurs CentOS de maîtriser la restauration d'un disque / partition entièrement amorçable dans un environnement de test et d'effectuer une restauration sans système d'exploitation. Cela soulagera beaucoup de pression lorsque l'on aura finalement besoin de terminer la pratique dans une situation réelle avec des gestionnaires et quelques dizaines d'utilisateurs finaux comptant les temps d'arrêt. Dans un tel cas, 10 minutes pour comprendre les choses peuvent sembler une éternité et faire transpirer.

Note- Lorsque vous utilisez dd, assurez-vous de NE PAS confondre les volumes source et cible. Vous pouvez détruire les données et les serveurs amorçables en copiant votre emplacement de sauvegarde sur un lecteur de démarrage. Ou peut-être pire détruire les données pour toujours en copiant les données à un niveau très bas avec DD.

Voici les commutateurs et paramètres de ligne de commande courants pour dd -

Commutateur action
si = Dans le fichier ou la source à copier
de = Out file ou la copie du fichier in
bs Définir la taille du bloc d'entrée et de sortie
obs Définir la taille du bloc du fichier de sortie
SCI Définir la taille du bloc du fichier d'entrée
compter Définissez le nombre de blocs à copier
conv Options supplémentaires à ajouter pour l'imagerie
Pas d'erreur N'arrêtez pas de traiter une erreur
synchroniser Blocs d'entrée non montés en cas d'erreur ou de désalignement

Note on block size- La taille de bloc par défaut pour dd est de 512 octets. Il s'agissait de la taille de bloc standard des disques durs de faible densité. Les disques durs à haute densité d'aujourd'hui ont augmenté à des tailles de bloc de 4 096 octets (4 Ko) pour permettre des disques allant de 1 To et plus. Ainsi, nous voudrons vérifier la taille du bloc de disque avant d'utiliser dd avec des disques durs plus récents et de plus grande capacité.

Pour ce tutoriel, au lieu de travailler sur un serveur de production avec dd , nous utiliserons une installation CentOS exécutée dans VMWare. Nous allons également configurer VMWare pour démarrer une image ISO Linux bootable au lieu de travailler avec une clé USB bootable.

Tout d'abord, nous devrons télécharger l'image CentOS intitulée: CentOS Gnome ISO . Cela fait presque 3 Go et il est conseillé de toujours conserver une copie pour créer des clés USB amorçables et démarrer dans des installations de serveurs virtuels pour le dépannage et les images bare metal.

D'autres distributions Linux amorçables fonctionneront aussi bien. Linux Mint peut être utilisé pour les ISO amorçables car il dispose d'un excellent support matériel et d'outils de disque GUI perfectionnés pour la maintenance.

L'image amorçable CentOS GNOME Live peut être téléchargée à partir de: http://buildlogs.centos.org/rolling/7/isos/x86_64/CentOS-7-x86_64-LiveGNOME.iso

Configurons notre installation VMWare Workstation pour démarrer à partir de notre image de démarrage Linux. Les étapes sont pour VMWare sur OS X. Cependant, elles sont similaires dans VMWare Workstation sous Linux, Windows et même Virtual Box.

Note- L'utilisation d'une solution de bureau virtuel telle que Virtual Box ou VMWare Workstation est un excellent moyen de configurer des scénarios de laboratoire pour apprendre les tâches d'administration CentOS. Il offre la possibilité d'installer plusieurs installations CentOS, pratiquement aucune configuration matérielle permettant à la personne de se concentrer sur l'administration, et même d'enregistrer l'état du serveur avant d'apporter des modifications.

Commençons par configurer un cd-rom virtuel et attacher notre image ISO pour démarrer au lieu de l'installation du serveur virtuel CentOS -

Maintenant, définissez le disque de démarrage -

Désormais, une fois démarrée, notre machine virtuelle démarrera à partir de l'image ISO amorçable CentOS et autorisera l'accès aux fichiers sur le serveur Virtual CentOS précédemment configuré.

Vérifions nos disques pour voir où nous voulons copier le MBR (la sortie condensée est la suivante).

MiNt ~ # fdisk -l
Disk /dev/sda: 60 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Nous avons localisé nos deux disques physiques: sda et sdb . Chacun a une taille de bloc de 512 octets. Donc, nous allons maintenant exécuter la commande dd pour copier les 512 premiers octets de notre MBR sur SDA1.

La meilleure façon de procéder est -

[[email protected] rdc]# dd if=/dev/sda bs=512 count=1  | gzip -c >
/mnt/sdb/images/mbr.iso.gz 
1+0 records in 
1+0 records out 
512 bytes copied, 0.000171388 s, 3.0 MB/s

[[email protected] rdc]# ls /mnt/sdb/ 
   mbr-iso.gz
   
[[email protected] rdc]#

Juste comme ça, nous avons une image complète de notre enregistrement de démarrage principal. Si nous avons suffisamment d'espace pour créer une image du lecteur de démarrage, nous pourrions tout aussi facilement créer une image de démarrage du système complet -

dd if=/dev/INPUT/DEVICE-NAME-HERE conv=sync,noerror bs=4K | gzip -c >
/mnt/sdb/boot-server-centos-image.iso.gz

Le conv = sync est utilisé lorsque les octets doivent être alignés pour un support physique. Dans ce cas, dd peut obtenir une erreur si les alignements 4K exacts ne sont pas lus (disons ... un fichier qui ne fait que 3K mais doit prendre au moins un seul bloc 4K sur le disque. Ou, il y a simplement une erreur de lecture et le fichier ne peut pas être lu par dd.). Ainsi, dd avec conv = sync, noerror remplira le 3K de données triviales mais utiles sur un support physique dans des alignements de blocs 4K. Sans présenter une erreur pouvant mettre fin à une opération importante.

Lorsque vous travaillez avec des données provenant de disques, nous voulons toujours inclure: conv = sync, noerror parameter.

C'est simplement parce que les disques ne sont pas des flux comme les données TCP. Ils sont constitués de blocs alignés à une certaine taille. Par exemple, si nous avons des blocs de 512 octets, un fichier de seulement 300 octets a encore besoin de 512 octets d'espace disque (éventuellement 2 blocs pour les informations d'inode comme les autorisations et autres informations sur le système de fichiers).

Utilisez gzip et tar pour le stockage sécurisé

gzip et tar sont deux utilitaires qu'un administrateur CentOS doit s'habituer à utiliser. Ils sont utilisés pour bien plus que simplement décompresser des archives.

Utilisation de Gnu Tar dans CentOS Linux

Tar est un utilitaire d'archivage similaire à winrar sous Windows. Son nom Tape Archive abrégé en tar résume assez bien l'utilitaire. tar prendra les fichiers et les placera dans une archive pour plus de commodité logique. Par conséquent, au lieu des dizaines de fichiers stockés dans / etc. nous pourrions simplement les «compresser» dans une archive pour des raisons de sauvegarde et de stockage.

tar est la norme de stockage des fichiers archivés sous Unix et Linux depuis de nombreuses années. Par conséquent, l'utilisation de tar avec gzip ou bzip est considérée comme une meilleure pratique pour les archives sur chaque système.

Voici une liste des commutateurs et options de ligne de commande courants utilisés avec tar -

Commutateur action
-c Crée une nouvelle archive .tar
-C Extraits dans un autre répertoire
-j Utilise la compression bzip2
-z Utilise la compression gzip
-v Progression de l'archivage des spectacles détaillés
-t Répertorie le contenu des archives
-F Nom de fichier de l'archive
-X Extrait l'archive tar

Voici la syntaxe de base pour créer une archive tar .

tar -cvf [tar archive name]

Note on Compression mechanisms with tar- Il est conseillé de s'en tenir à l'un des deux schémas de compression courants lors de l'utilisation de tar: gzip et bzip2. Les fichiers gzip consomment moins de ressources CPU mais sont généralement plus volumineux. Alors que bzip2 prendra plus de temps à se compresser, ils utilisent plus de ressources CPU; mais entraînera une taille de fichier finale plus petite.

Lors de l'utilisation de la compression de fichiers, nous voudrons toujours utiliser des extensions de fichier standard permettant à tout le monde, y compris nous-mêmes, de savoir (plutôt que de deviner par essais et erreurs) quel schéma de compression est nécessaire pour extraire les archives.

bzip2 .tbz
bzip2 .tar.tbz
bzip2 .tb2
gzip .tar.gz
gzip .tgz

Lorsque vous devez éventuellement extraire des archives sur une boîte Windows ou pour une utilisation sous Windows, il est conseillé d'utiliser le .tar.tbz ou .tar.gz car la plupart des extensions simples à trois caractères confondront uniquement les administrateurs Windows et Windows (cependant, c'est parfois le résultat souhaité)

Créons une archive tar gzippée à partir de nos sauvegardes à distance copiées depuis la station de travail Mac -

[[email protected] Documents]$ tar -cvz -f RemoteStuff.tgz ./RemoteStuff/ 
./RemoteStuff/
./RemoteStuff/.DS_Store
./RemoteStuff/DDWRT/
./RemoteStuff/DDWRT/.DS_Store
./RemoteStuff/DDWRT/ddwrt-linksys-wrt1200acv2-webflash.bin
./RemoteStuff/DDWRT/ddwrt_mod_notes.docx
./RemoteStuff/DDWRT/factory-to-ddwrt.bin
./RemoteStuff/open_ldap_config_notes/
./RemoteStuff/open_ldap_config_notes/ldap_directory_a.png
./RemoteStuff/open_ldap_config_notes/open_ldap_notes.txt
./RemoteStuff/perl_scripts/
./RemoteStuff/perl_scripts/mysnmp.pl
./RemoteStuff/php_scripts/
./RemoteStuff/php_scripts/chunked.php
./RemoteStuff/php_scripts/gettingURL.php
./RemoteStuff/A Guide to the WordPress REST API | Toptal.pdf
./RemoteStuff/Rick Cardon Tech LLC.webloc
./RemoteStuff/VeeamDiagram.png
./RemoteStuff/backbox-4.5.1-i386.iso
./RemoteStuff/dhcp_admin_script_update.py
./RemoteStuff/test_file.txt
[[email protected] Documents]$ ls -ld RemoteStuff.tgz
-rw-rw-r--. 1 rdc rdc 2317140451 Mar 12 06:10 RemoteStuff.tgz

Note- Au lieu d'ajouter tous les fichiers directement à l'archive, nous avons archivé l'intégralité du dossier RemoteStuff . C'est la méthode la plus simple. Tout simplement parce qu'une fois extrait, tout le répertoire RemoteStuff est extrait avec tous les fichiers à l'intérieur du répertoire de travail actuel sous le nom ./currentWorkingDirectory/RemoteStuff/

Extrayons maintenant l'archive dans le répertoire / root / home.

[[email protected] ~]# tar -zxvf RemoteStuff.tgz
./RemoteStuff/
./RemoteStuff/.DS_Store
./RemoteStuff/DDWRT/
./RemoteStuff/DDWRT/.DS_Store
./RemoteStuff/DDWRT/ddwrt-linksys-wrt1200acv2-webflash.bin
./RemoteStuff/DDWRT/ddwrt_mod_notes.docx
./RemoteStuff/DDWRT/factory-to-ddwrt.bin
./RemoteStuff/open_ldap_config_notes/
./RemoteStuff/open_ldap_config_notes/ldap_directory_a.png
./RemoteStuff/open_ldap_config_notes/open_ldap_notes.txt
./RemoteStuff/perl_scripts/
./RemoteStuff/perl_scripts/mysnmp.pl
./RemoteStuff/php_scripts/
./RemoteStuff/php_scripts/chunked.php
./RemoteStuff/php_scripts/gettingURL.php
./RemoteStuff/A Guide to the WordPress REST API | Toptal.pdf
./RemoteStuff/Rick Cardon Tech LLC.webloc
./RemoteStuff/VeeamDiagram.png
./RemoteStuff/backbox-4.5.1-i386.iso
./RemoteStuff/dhcp_admin_script_update.py
./RemoteStuff/test_file.txt
[[email protected] ~]# ping www.google.com

Comme vu ci-dessus, tous les fichiers ont été simplement extraits dans le répertoire contenant dans notre répertoire de travail actuel.

[[email protected] ~]# ls -l 
total 2262872 
-rw-------.   1   root   root       1752   Feb   1   19:52   anaconda-ks.cfg 
drwxr-xr-x. 137   root   root       8192   Mar   9   04:42   etc_baks 
-rw-r--r--.   1   root   root       1800   Feb   2   03:14   initial-setup-ks.cfg 
drwxr-xr-x.   6   rdc    rdc        4096   Mar  10   22:20   RemoteStuff 
-rw-r--r--.   1   root   root 2317140451   Mar  12   07:12   RemoteStuff.tgz 
-rw-r--r--.   1   root   root       9446   Feb  25   05:09   ssl.conf [[email protected] ~]#

Utilisez gzip pour compresser les sauvegardes de fichiers

Comme indiqué précédemment, nous pouvons utiliser bzip2 ou gzip de tar avec le -j ou -zcommutateurs de ligne de commande. Nous pouvons également utiliser gzip pour compresser des fichiers individuels. Cependant, utiliser bzip ou gzip seul n'offre pas autant de fonctionnalités que lorsqu'il est combiné avec tar .

Lors de l'utilisation de gzip , l'action par défaut consiste à supprimer les fichiers d'origine, en les remplaçant chacun par une version compressée en ajoutant l'extension .gz.

Certains commutateurs de ligne de commande courants pour gzip sont -

Commutateur action
-c Conserve les fichiers après les avoir placés dans l'archive
-l Obtenez des statistiques pour l'archive compressée
-r Compresse récursivement les fichiers dans les répertoires
-1 à 9 Spécifie le niveau de compression sur une échelle de 1 à 9

gzip fonctionne plus ou moins sur une base fichier par fichier et non sur une base d'archive comme certains utilitaires zip Windows O / S. La raison principale en est que tar fournit déjà des fonctionnalités d'archivage avancées. gzip est conçu pour fournir uniquement un mécanisme de compression.

Par conséquent, lorsque vous pensez à gzip , pensez à un seul fichier. Lorsque vous pensez à plusieurs fichiers, pensez aux archives tar . Explorons maintenant cela avec notre précédente archive tar .

Note - Les professionnels Linux chevronnés se réfèrent souvent à une archive goudronnée comme une archive tar.

Créons une autre archive tar à partir de notre sauvegarde rsync .

[[email protected] Documents]# tar -cvf RemoteStuff.tar ./RemoteStuff/
[[email protected] Documents]# ls
RemoteStuff.tar RemoteStuff/

À des fins de démonstration, gzipons l'archive tar nouvellement créée et demandons à gzip de conserver l'ancien fichier. Par défaut, sans l' option -c , gzip remplacera toute l'archive tar par un fichier .gz .

[[email protected] Documents]# gzip -c RemoteStuff.tar > RemoteStuff.tar.gz
[[email protected] Documents]# ls
RemoteStuff  RemoteStuff.tar  RemoteStuff.tar.gz
We now have our original directory, our tarred directory and finally our gziped tarball.

Essayons de tester le commutateur -l avec gzip .

[[email protected] Documents]# gzip -l RemoteStuff.tar.gz  
     compressed        uncompressed        ratio uncompressed_name 
     2317140467          2326661120        0.4% RemoteStuff.tar
     
[[email protected] Documents]#

Pour montrer en quoi gzip diffère des utilitaires Zip Windows, exécutons gzip sur un dossier de fichiers texte.

[[email protected] Documents]# ls text_files/
 file1.txt  file2.txt  file3.txt  file4.txt  file5.txt
[[email protected] Documents]#

Utilisons maintenant l'option -r pour compresser récursivement tous les fichiers texte du répertoire.

[[email protected] Documents]# gzip -9 -r text_files/

[[email protected] Documents]# ls ./text_files/
file1.txt.gz  file2.txt.gz  file3.txt.gz  file4.txt.gz  file5.txt.gz
 
[[email protected] Documents]#

Voir? Pas ce que certains auraient pu prévoir. Tous les fichiers texte d'origine ont été supprimés et chacun a été compressé individuellement. En raison de ce comportement, il est préférable de penser à gzip seul lorsque vous devez travailler dans des fichiers uniques.

En travaillant avec des tarballs , extrayons notre tarball rsynced dans un nouveau répertoire.

[[email protected] Documents]# tar -C /tmp -zxvf RemoteStuff.tar.gz
./RemoteStuff/
./RemoteStuff/.DS_Store
./RemoteStuff/DDWRT/
./RemoteStuff/DDWRT/.DS_Store
./RemoteStuff/DDWRT/ddwrt-linksys-wrt1200acv2-webflash.bin
./RemoteStuff/DDWRT/ddwrt_mod_notes.docx
./RemoteStuff/DDWRT/factory-to-ddwrt.bin
./RemoteStuff/open_ldap_config_notes/
./RemoteStuff/open_ldap_config_notes/ldap_directory_a.png
./RemoteStuff/open_ldap_config_notes/open_ldap_notes.txt
./RemoteStuff/perl_scripts/
./RemoteStuff/perl_scripts/mysnmp.pl
./RemoteStuff/php_scripts/
./RemoteStuff/php_scripts/chunked.php

Comme vu ci-dessus, nous avons extrait et décompressé notre tarball dans le répertoire / tmp.

[[email protected] Documents]# ls /tmp 
hsperfdata_root
RemoteStuff

Crypter les archives TarBall

Le chiffrement des archives tarball pour stocker des documents sécurisés auxquels d'autres employés de l'organisation peuvent avoir besoin, en cas de reprise après sinistre, peut être un concept délicat. Il y a essentiellement trois façons de faire cela: soit utiliser GnuPG, soit utiliser openssl, soit utiliser un utilitaire tiers.

GnuPG est principalement conçu pour le cryptage asymétrique et a une association d'identité en tête plutôt qu'une phrase de passe. Certes, il peut être utilisé avec un cryptage symétrique, mais ce n'est pas la principale force de GnuPG. Ainsi, j'écarterais GnuPG pour le stockage d'archives avec une sécurité physique lorsque plus de personnes que la personne d'origine peuvent avoir besoin d'un accès (comme peut-être un directeur d'entreprise qui veut se protéger contre un administrateur détenant toutes les clés du royaume comme levier).

Opensl comme GnuPG peut faire ce que nous voulons et est livré avec CentOS. Mais encore une fois, n'est pas spécifiquement conçu pour faire ce que nous voulons et le cryptage a été remis en question dans la communauté de la sécurité.

Notre choix est un utilitaire appelé 7zip. 7zip est un utilitaire de compression comme gzip mais avec beaucoup plus de fonctionnalités. Comme Gnu Gzip, 7zip et ses standards sont dans la communauté open-source. Nous avons juste besoin d'installer 7zip à partir de notre référentiel EHEL (le prochain chapitre couvrira l'installation des référentiels d'entreprise étendus en détail).

Installez 7zip sur Centos

7zip est une installation simple une fois que nos référentiels EHEL ont été chargés et configurés dans CentOS.

[[email protected] Documents]# yum -y install p7zip.x86_64 p7zip-plugins.x86_64
Loaded plugins: fastestmirror, langpacks
base
| 3.6 kB  00:00:00
epel/x86_64/metalink
|  13 kB  00:00:00
epel
| 4.3 kB  00:00:00
extras
| 3.4 kB  00:00:00
updates
| 3.4 kB  00:00:00
(1/2): epel/x86_64/updateinfo
| 756 kB  00:00:04      
(2/2):
epel/x86_64/primary_db
| 4.6 MB  00:00:18
Loading mirror speeds from cached hostfile
--> Running transaction check
---> Package p7zip.x86_64 0:16.02-2.el7 will be installed
---> Package p7zip-plugins.x86_64 0:16.02-2.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved

Aussi simple que cela, 7zip est installé et prêt à être utilisé avec un cryptage AES 256 bits pour nos archives tarball.

Utilisons maintenant 7z pour crypter notre archive gzippée avec un mot de passe. La syntaxe pour ce faire est assez simple -

7z a -p <output filename><input filename>

Où, a: ajouter à l'archive, et -p: crypter et demander la phrase de passe

[[email protected] Documents]# 7z a -p RemoteStuff.tgz.7z RemoteStuff.tar.gz

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,1 CPU Intel(R)
Core(TM) i5-4278U CPU @ 2.60GHz (40651),ASM,AES-NI)
Scanning the drive:
1 file, 2317140467 bytes (2210 MiB)

Creating archive: RemoteStuff.tgz.7z

Items to compress: 1

Enter password (will not be echoed):
Verify password (will not be echoed) :

Files read from disk: 1
Archive size: 2280453410 bytes (2175 MiB)
Everything is Ok
[[email protected] Documents]# ls
RemoteStuff  RemoteStuff.tar  RemoteStuff.tar.gz  RemoteStuff.tgz.7z  slapD
text_files

[[email protected] Documents]#

Maintenant, nous avons notre archive .7z qui crypte l'archive tar gzippée avec AES 256 bits.

Note- 7zip utilise le cryptage AES 256 bits avec un hachage SHA-256 du mot de passe et du compteur, répété jusqu'à 512K fois pour la dérivation de clé. Cela devrait être suffisamment sécurisé si une clé complexe est utilisée.

Le processus de chiffrement et de recompression de l'archive peut prendre un certain temps avec des archives plus volumineuses.

7zip est une offre avancée avec plus de fonctionnalités que gzip ou bzip2. Cependant, ce n'est pas en standard avec CentOS ou dans le monde Linux. Ainsi, les autres utilitaires doivent être utilisés le plus souvent possible.