it-swarm-ru.tech

Для чего используется команда mknod?

Я только начал использовать Ubuntu в качестве основной ОС и хотел узнать о вещах, которые мне не следует делать, и узнавать о плохих вещах, которые люди делали в прошлом. Я сталкивался с эти письма об ужасных историях, которые администраторы UNIX & Linux sys сделали в их собственной системе, когда они были новыми. Многие из них включали использование команды mknod, чтобы исказить и исправить проблему. Я никогда раньше не слышал об этой команде, и страница руководства в Ubuntu не очень полезна. Итак, мой вопрос: для чего используется эта команда, и какие примеры могут быть полезны при повседневном использовании?

52
Mark Tomlin

mknod изначально использовался для создания символьных и блочных устройств, которые заполняются /dev/. В настоящее время программное обеспечение, такое как udev, автоматически создает и удаляет узлы устройств в виртуальной файловой системе, когда ядро ​​обнаруживает соответствующее оборудование, но изначально /dev был просто каталогом в /, который был заполнен во время установки.

Так что да, в случае почти полной катастрофы, вызвавшей /dev виртуальная файловая система не загружается и/или udev впечатляюще не работает, используя mknod для тщательного повторного заполнения хотя бы элементарного дерева устройств для получения чего-то резервного копирования. ... Но да, это время ужасов сисадмина. Лично я рекомендую спасательную флешку или CD.

Помимо создания именованных каналов, я не могу придумать единственного возможного ежедневного использования, которым конечный пользователь должен был бы заниматься - и даже это расширяет определение "повседневного использования".

47
Shadur

Вы можете сделать именованную трубу с ним.

Я использую это с одной программой, чтобы читать из нее, и другой, чтобы написать в нее.

Облегчает взаимодействие между процессами.

В противном случае вы можете создавать файлы устройств для устройств, которых нет.

Также: http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds3/mknod.htm

7
polemon

Поскольку администраторы баз данных Oracle работают над необработанными устройствами для создания дисковых групп Oracle ASM, мы регулярно используем mknod для связи устройств.

Ответы выше были очень полезны для меня, поскольку мы не являемся системными администраторами. Я просто хотел отметить, что с точки зрения администраторов хранилища может быть редко использовать mknod, но с точки зрения Oracle ASM это обычное применение. (Может быть, кто-то может придумать лучший способ для нас?)

5
Jay Jee

ИМХО, даже для создания именованных каналов команда mkfifo будет лучше, чем mknod. Во-первых, он информативен в своем имени, во-вторых, он позволяет опцию -m переопределить настройки umask.

3
Tom