Maison  >  Article  >  Opération et maintenance  >  Quels sont les trois modes de fonctionnement de Linux CPIO

Quels sont les trois modes de fonctionnement de Linux CPIO

青灯夜游
青灯夜游original
2023-02-09 11:52:161137parcourir

cpio a trois modes de fonctionnement : 1. Le mode de copie, utilisé pour empaqueter les fichiers de sauvegarde et copier les fichiers dans le package d'archives ; 2. Le mode de copie, utilisé pour restaurer les fichiers à partir des fichiers du package d'archives, qui peuvent être utilisés à partir de standard Entrez le package d'archive lu pour lire les fichiers dans le package d'archives ou répertorier le contenu du package d'archives 3. Le mode copie-passe est utilisé pour copier des fichiers d'une arborescence de répertoires à une autre ;

Quels sont les trois modes de fonctionnement de Linux CPIO

L'environnement d'exploitation de ce tutoriel : système linux7.3, ordinateur Dell G3.

Sous Linux, cpio est un outil de sauvegarde et de récupération de données, utilisé pour créer des fichiers d'archive cpio, extraire des fichiers de fichiers d'archive ou copier des fichiers d'un répertoire à un autre. Le fichier d'archive généré peut être un fichier disque ou il peut être écrit sur un support de diffusion de données tel qu'une bande. cpio peut non seulement traiter les fichiers d'archive cpio aux formats de données d'en-tête binaires et ASCII, mais peut également lire et écrire des fichiers d'archive dans différents formats tar. Pour maintenir la compatibilité, cpio crée généralement des fichiers d'archive au format de données d'en-tête binaire, sauf indication contraire.

cpio est similaire à la commande tar. Elle peut copier et regrouper des fichiers dans des fichiers de package d'archives au format cpio ou tar, ou copier des fichiers à partir de fichiers de package d'archives. Les fichiers de packages d'archives peuvent être des fichiers sur disque ou des fichiers de périphérique tels que des bandes.

Lors de l'extraction de fichiers à partir de fichiers d'archive, la commande cpio peut identifier automatiquement quel fichier d'archive est en cours de lecture et peut également lire des fichiers d'archive avec différents ordres d'octets créés dans différents systèmes.

cpio a trois modes de fonctionnement, comme indiqué dans le tableau suivant :

cpio trois modes de fonctionnement
cpio trois modes de fonctionnement
mode de fonctionnement Description du mode
copie mode Ce mode est utilisé pour empaqueter les fichiers de sauvegarde.
                                cpio copie les fichiers dans le package d'archive. Les noms de fichiers à compresser par cpio proviennent de l'entrée standard, et il obtient une liste de noms de fichiers de l'entrée standard, un par ligne. Généralement, l'entrée standard vers la sortie de l'entrée standard vers l'autre commande se fait généralement via le pipeline. La méthode la plus courante consiste à utiliser la commande find pour générer une liste de noms de fichiers, puis à la diriger vers cpio. De cette façon, cpio peut savoir d'où proviennent les données à sauvegarder. Vous devez ajouter l'option -degree après find pour réduire les problèmes causés par la saisie de répertoires sans autorisations d'accès.
Par défaut, cpio écrit les fichiers du package d'archives sur la sortie standard, vous devez donc utiliser le symbole de redirection > ou >> pour rediriger la sortie des données du package d'archives vers un fichier.
Mode de copie Ce mode est utilisé pour récupérer des fichiers à partir de fichiers de package archivés.
cpio lit le package d'archives à partir de l'entrée standard, lit les fichiers du package d'archives ou répertorie le contenu du package d'archives. cpio écrit les données lues à partir du package d'archives sur la sortie standard.
mode copie-passe cpio copie les fichiers d'une arborescence de répertoires à une autre. Il combine les opérations de copie d'entrée et de copie, mais n'utilise pas de packages d'archives. CPIO reçoit une liste de fichiers à lire à partir de l'entrée standard ; le répertoire cible est donné comme paramètre de ligne de commande pour les non-options.

cpio prend en charge les formats d'archives suivants : binaire, ancien ASCII, nouvel ASCII, crc, binaire HPUX, ancien ASCII HPUX, ancien tar et tar POSIX.1.

Certaines options de cpio ne peuvent être utilisées que dans le mode de fonctionnement correspondant. Le format d'option de commande couramment utilisé est le suivant :

[root@initroot ~]# cpio -ovcB > [file|device] #备份
[root@initroot ~]# cpio -ivcdu < [file|device] #还原
[root@initroot ~]# cpio -ivct < [file|device] #察看

Options et paramètres utilisés en mode copie (sauvegarde) :

  • - o : Exporter la copie des données vers un fichier ou un appareil

  • -B : Autoriser l'augmentation des blocs par défaut à 5 120 octets, la valeur par défaut est de 512 octets. L'avantage est que cela peut accélérer le stockage de fichiers volumineux (s'il vous plaît ! se référer au concept i-nodes)

Options et paramètres utilisés en mode copie (restauration) :

  • -i : Copier les données de fichiers ou d'appareils hors du système

  • -d : Créez automatiquement un répertoire ! Les données sauvegardées à l'aide de cpio peuvent ne pas être dans le même répertoire, nous devons donc autoriser cpio à créer un nouveau répertoire lors de la restauration. Dans ce cas, nous avons besoin de l'aide de l'option -d ! -u : Écrase automatiquement les anciens fichiers par les plus récents

  • -t : Nécessite l'option -i, qui peut être utilisée pour "afficher" le contenu des fichiers ou des périphériques créés avec cpio

  • Options et paramètres communs :

-v : Autorise l'affichage du nom du fichier à l'écran pendant le processus de sauvegarde

  • -c : Un stockage au format portable plus récent

  • cpio lit les données à partir de l'entrée standard, sort le traitement les données vers la sortie standard, cpio doit donc être utilisé avec des tuyaux et des symboles de redirection.
Recherchez tous les fichiers du répertoire /boot et sauvegardez-les dans le fichier d'archive /tmp/boot.cpio :
[root@initroot ~]# cd /
[root@initroot /]# find boot -print
boot
boot/grub
boot/grub/gfxblacklist.txt
boot/grub/unicode.pf2
boot/grub/locale
...省略...

La commande find peut trouver tous les fichiers du répertoire de démarrage, y compris les fichiers et les répertoires ! voici le chemin relatif, pas le chemin absolu !

[root@initroot /]# find boot | cpio -ocvB > /tmp/boot.cpio

[root@initroot /]# ls -lh /tmp/boot.cpio
-rw-r--r-- 1 peter peter 193M Feb 10 15:59 /tmp/boot.cpio
[root@initroot ~]# file /tmp/boot.cpio
/tmp/boot.cpio: ASCII cpio archive (pre-SVR4 or odc)

Utilisez find boot pour connaître le nom du fichier, transmettez la sortie à cpio via le pipeline | et envoyez les données d'archive dans le fichier /tmp/boot.cpio via le symbole de redirection. >! trouver ci-dessus Le paramètre boot est un chemin relatif, pas un chemin absolu, il n'effectuera pas de traitement spécial sur le chemin. Il recevra toutes les données fournies. Donc, si un chemin absolu est utilisé ici, alors la sortie de la commande find est également un chemin absolu, et ce que cpio reçoit est également un chemin absolu. Ensuite, lorsque le fichier est copié à partir du fichier archive, car il s'agit d'un chemin absolu, le fichier copié sera définitivement écrasé. Supprimez les fichiers dans le répertoire /boot d'origine ! Par conséquent, lorsque vous utilisez la commande find avec cpio pour empaqueter des fichiers, assurez-vous d'utiliser des chemins relatifs ! Référez-vous à l'option -P de la commande tar !!

Décompressez maintenant le fichier du package d'archive /tmp/boot.cpio dans le répertoire /root/ :

[root@initroot ~]# cd ~
[root@initroot ~]# cpio -idvc < /tmp/boot.cpio
[root@initroot ~]# ls -al /root/boot

Vous pouvez voir que le contenu de /root/boot et /boot sont exactement les mêmes !

cpio peut sauvegarder complètement les données du système sur le lecteur de bande :

[root@initroot ~]# find / | cpio -ocvB > /dev/st0

Restaurer les données du lecteur de bande :

[root@initroot ~]# cpio -idvc < /dev/st0

cpio peut sauvegarder n'importe quel fichier, y compris les fichiers de périphérique sous /dev ! commande très importante !

cpio Elle doit être coopérée avec d'autres programmes, tels que find pour créer des noms de fichiers, donc cpio a une relation très étroite avec les commandes de pipeline et la redirection du flux de données

En fait, /boot/initramfs-xxx ou ! /boot/initrd dans le répertoire /boot Le fichier .img-xxx-generic est également un fichier d'archive cpio.

Nous pouvons décompresser le fichier dans le répertoire /tmp/initramfs pour voir quels fichiers se trouvent dans ce package d'archive :

[root@initroot ~]# file initrd.img-4.15.0-65-generic
initrd.img-4.15.0-65-generic: ASCII cpio archive (SVR4 with no CRC)
[root@initroot ~]# mkdir /tmp/initramfs
[root@initroot ~]# cd /tmp/initramfs
[root@initroot initramfs]# cpio -idv < /boot/initrd.img-4.15.0-65-generic
.
kernel
kernel/x86
kernel/x86/microcode
kernel/x86/microcode/AuthenticAMD.bin
56 blocks

Notez que l'option -c est supprimée ici. Si l'option -c est ajoutée, cpio apparaîtra comme suit. Astuce :

cpio: premature end of file

Supprimez l'option -c pour réussir à décompresser le fichier d'archive !

Recommandations associées : "

Tutoriel vidéo Linux

"

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn