Para que serve o comando mknod?

47

Acabei de começar a usar o Ubuntu como meu sistema operacional principal e queria aprender sobre coisas que não deveria fazer e aprender com as coisas ruins que as pessoas fizeram no passado. Eu encontrei estes e-mails sobre histórias de terror que UNIX & Administradores de sistemas Linux fizeram em seu próprio sistema quando eles eram novos. Muitos deles envolviam o uso do comando mknod para separar e corrigir um problema. Eu nunca ouvi falar desse comando antes e a página man dentro do Ubuntu não é muito útil. Então, minha pergunta é: para que serve esse comando e quais são alguns exemplos em que é útil no dia a dia?

    
por Mark Tomlin 06.04.2011 / 09:28

4 respostas

42

mknod foi originalmente usado para criar o caractere e bloquear dispositivos que preenchem /dev/ . Atualmente software como udev automaticamente cria e remove nós de dispositivos no sistema de arquivos virtual quando o hardware correspondente é detectado pelo kernel, mas originalmente /dev era apenas um diretório em / que foi preenchido durante a instalação.

Portanto, sim, em caso de um desastre quase completo, fazendo com que o sistema de arquivos /dev virtual não carregue e / ou udev falhando espetacularmente, usando mknod para repovoar meticulosamente pelo menos uma árvore de dispositivos rudimentar para obter algo de back-up pode ser feito ... Mas sim, é o tempo da história de horror do sysadmin. Pessoalmente, eu recomendo um stick USB ou CD de resgate.

Além de criar canais nomeados, não consigo pensar em um único uso diário possível para o qual um usuário final precisaria se preocupar - e até mesmo isso é esticar a definição de 'dia a dia usar'.

    
por 06.04.2011 / 09:47
7

Você pode criar um pipe nomeado com ele.

Eu uso com um programa para ler e outro para escrever nele.

Facilita a comunicação entre processos.

Caso contrário, você pode criar arquivos de dispositivos para dispositivos que não estão presentes.

Além disso, link

    
por 06.04.2011 / 09:46
5

Como os DBAs oracle trabalhando em dispositivos brutos para criar grupos de discos Oracle ASM, usamos regularmente mknod para vincular dispositivos.

As respostas acima foram muito úteis para mim, pois não somos administradores do sistema. Eu só queria salientar que pode ser raro, do ponto de vista dos administradores de armazenamento, usar mknod , mas, do ponto de vista do Oracle ASM, é um uso comum. (Pode ser que alguém possa encontrar uma maneira melhor para nós?)

    
por 01.10.2012 / 10:48
3

IMHO, mesmo para criar pipes nomeados, o comando mkfifo é melhor que o mknod. Um, é auto descritivo em seu nome, Segundo, ele permite a opção -m para sobrescrever as configurações de umask.

    
por 30.01.2013 / 19:22