Dans le processus d'exploitation et de maintenance de Linux, nous constatons souvent que le répertoire de stockage d'une application est plein, sans aucune planification préalable, et que le répertoire ou le disque ne peut pas être étendu. À l'heure actuelle, notre solution courante consiste à créer un logiciel. lien, via ln, ceci est réalisé en liant de manière logicielle le répertoire initialement stocké à un répertoire d'un autre grand disque.
L'inconvénient des liens souples est qu'après plusieurs couches de liens souples, ils seront étourdis, ce qui peut facilement provoquer un mauvais fonctionnement. Aujourd'hui, je vais vous présenter une autre méthode
.Les amis d'opération et de maintenance de la commande mount devraient le connaître, donc je ne le présenterai pas trop
Jetons d'abord un coup d'œil à l'introduction chez l'homme
Vous pouvez remonter la structure des répertoires de fichiers via mount –bind et connecter deux répertoires. Il monte le premier répertoire sur le dernier répertoire. Tout accès à ce dernier répertoire est en fait un accès au répertoire précédent.
Afficher l'inode du fichier
Montez test1 sur test2 via mount –bind et revérifiez le contenu de l'inode et du répertoire
Vous pouvez voir que le numéro d'inode et le fichier sont tous deux test1
Ensuite, accédez et modifiez les fichiers dans le répertoire test2. En fait, ce qui est modifié, c'est le répertoire test1. Lors de notre test, nous créons des fichiers dans le répertoire test2
.
Puis après avoir contacté mount, nous vérifierons le contenu des deux prochains répertoiresVous pouvez voir que le répertoire test1 reste dans l'état modifié et que les fichiers du répertoire test2 existent toujours et restent inchangés
c'est-à-dire le bloc du fichier répertoire, qui enregistre les informations du répertoire inférieur). répertoires de niveau), c'est-à-dire que le chemin de niveau inférieur de test2 est masqué (Remarque, il s'agit simplement de masquer mais pas de supprimer, les données n'ont pas changé, elles sont simplement inaccessibles). En même temps, le noyau enregistre l'entrée du répertoire de montage (test1) dans un objet s_root dans la mémoire. Lorsque la commande mount est exécutée, VFS créera un objet vfsmount. Cet objet contient toutes les informations de montage de l'ensemble. système de fichiers, parmi lesquels Il inclura également les informations dans ce montage. Cet objet est une table de correspondance de valeurs HASH (la valeur HASH est calculée en calculant la chaîne de chemin. La table contient la correspondance de valeurs HASH entre les deux répertoires /test1 vers). /test2
Une fois la commande exécutée, lors de l'accès aux fichiers sous /test2, le système informera que l'entrée du répertoire de /test2 est bloquée, et accédera automatiquement à la mémoire pour trouver VFS et apprendra la relation correspondante entre /test2 et /test1 via vfsmount, donc Lire l'inode de /test1, afin que tous les fichiers lus sous /test2 soient des fichiers dans le répertoire /test1
Test de lecture du fichier de configuration temporaire
Dans certains scénarios d'application, il est nécessaire de modifier le fichier de configuration pour les tests, mais cela ne peut pas affecter l'activité en cours. Si vous n'êtes pas sûr et ne souhaitez pas modifier directement le fichier de configuration d'origine, nous pouvons écrire dans /tmp et d'autres répertoires. . Un fichier de configuration de test est monté dans le répertoire de lecture du fichier de configuration via mount –bind, et le programme en cours d'exécution lit le fichier de configuration temporaire une fois le test terminé, seul umount est nécessaire, ce qui n'affecte pas la configuration d'origine
.Montage en lecture seule
Dans certains scénarios, par exemple, si vous devez autoriser les développeurs à afficher certaines configurations, mais ne leur permettez pas de modifier les configurations, vous pouvez monter un répertoire en lecture seule via mount –bind,ro. Le répertoire d'origine est accessible en écriture. et peut être monté. Le répertoire est en lecture seule, il vous suffit de donner au développeur l'autorisation de répertoire en lecture seule
.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!