web-dev-qa-db-fra.com

À quoi sert la commande mknod?

Je viens de commencer à utiliser Ubuntu comme mon système d'exploitation principal et je voulais en savoir plus sur les choses que je ne devrais pas faire et apprendre des mauvaises choses que les gens ont faites dans le passé. Je suis tombé sur ces e-mails sur des histoires d'horreur que les administrateurs système UNIX et Linux avaient fait sur leur propre système quand ils étaient nouveaux. Beaucoup d'entre eux impliquaient l'utilisation de la commande mknod pour distiller et résoudre un problème. Je n'ai jamais entendu parler de cette commande auparavant et la page de manuel dans Ubuntu n'est pas très utile. Ma question est donc de savoir à quoi sert cette commande et quels sont les exemples où elle est utile au quotidien?

52
Mark Tomlin

mknod était à l'origine utilisé pour créer les caractères et bloquer les périphériques qui peuplent /dev/. De nos jours, un logiciel comme udev crée et supprime automatiquement les nœuds de périphérique sur le système de fichiers virtuel lorsque le matériel correspondant est détecté par le noyau, mais à l'origine /dev n'était qu'un répertoire dans / qui a été rempli lors de l'installation.

Alors oui, en cas de catastrophe quasi complète provoquant le /dev système de fichiers virtuel à ne pas charger et/ou udev échec spectaculaire, en utilisant mknod pour repeupler minutieusement au moins une arborescence de périphériques rudimentaire pour obtenir quelque chose une sauvegarde peut être effectuée ... Mais oui, c'est l'heure de l'histoire d'horreur sysadmin. Personnellement, je recommande une clé USB de secours ou un CD.

Mis à part la création de canaux nommés, je ne peux pas penser à une seule utilisation quotidienne possible pour laquelle un utilisateur final devrait se préoccuper - et même cela étire la définition de `` l'utilisation quotidienne ''.

47
Shadur

Vous pouvez créer un tuyau nommé avec lui.

Je l'utilise avec un programme pour en lire et un autre pour y écrire.

Facilite la communication entre les processus.

Sinon, vous pouvez créer des fichiers de périphérique pour les périphériques qui ne sont pas présents.

Aussi: http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds3/mknod.htm

7
polemon

Comme les administrateurs de bases de données Oracle travaillent sur des périphériques bruts pour créer des groupes de disques Oracle ASM, nous utilisons régulièrement mknod pour lier des périphériques.

Les réponses ci-dessus m'ont été très utiles car nous ne sommes pas des administrateurs système. Je voulais juste souligner qu'il pourrait être rare du point de vue des administrateurs de stockage d'utiliser mknod mais du point de vue Oracle ASM, c'est une utilisation courante. (Peut-être que quelqu'un pourrait trouver un meilleur moyen pour nous?)

5
Jay Jee

À mon humble avis, même pour créer des tuyaux nommés, la commande mkfifo est meilleure que mknod. Un, il est auto-descriptif dans son nom, Deuxièmement, il permet à l'option -m de remplacer les paramètres umask.

3
Tom