it-swarm.it

A cosa serve il comando mknod?

Ho appena iniziato a utilizzare Ubuntu come mio sistema operativo principale e volevo imparare cose che non avrei dovuto fare e imparare dalle cose cattive che le persone hanno fatto in passato. Mi sono imbattuto in queste e-mail sulle storie dell'orrore che gli amministratori di sistema UNIX e Linux avevano fatto sul proprio sistema quando erano nuove. Molti di loro hanno comportato l'uso del comando mknod per distorcere e risolvere un problema. Non ho mai sentito parlare di questo comando prima e la pagina man di Ubuntu non è molto utile. Quindi la mia domanda è: a cosa serve questo comando e quali sono alcuni esempi in cui è utile nell'uso quotidiano?

52
Mark Tomlin

mknod era originariamente utilizzato per creare il carattere e bloccare i dispositivi che popolano /dev/. Oggi software come udev crea e rimuove automaticamente i nodi del dispositivo sul filesystem virtuale quando l'hardware corrispondente viene rilevato dal kernel, ma in origine /dev era solo una directory in / popolato durante l'installazione.

Quindi sì, in caso di un disastro quasi completo che causa il /dev filesystem virtuale da non caricare e/o udev in modo spettacolare, utilizzando mknod per ripopolare scrupolosamente almeno un albero di dispositivi rudimentali per ottenere qualcosa è possibile eseguire il backup ... Ma sì, è l'ora della storia dell'orrore di sysadmin. Personalmente, raccomando una chiavetta USB o un CD di salvataggio.

A parte la creazione di pipe denominate, non riesco a pensare a un singolo possibile uso quotidiano per cui un utente finale dovrebbe preoccuparsi - e anche questo sta allungando la definizione di "uso quotidiano".

47
Shadur

È possibile creare una pipa denominata con esso.

Lo uso con un programma per leggere da esso e un altro per scrivere in esso.

Semplifica la comunicazione tra i processi.

Altrimenti, è possibile creare file di dispositivo per dispositivi che non sono presenti.

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

7
polemon

Come Oracle DBA che lavorano su dispositivi raw per creare diskgroup Oracle ASM, usiamo regolarmente mknod per collegare i dispositivi.

Le risposte di cui sopra mi sono state molto utili in quanto non siamo amministratori di sistema. Volevo solo sottolineare che potrebbe essere raro dal punto di vista degli amministratori dello storage usare mknod ma dal punto di vista di Oracle ASM è un uso comune. (Potrebbe essere qualcuno potrebbe trovare un modo migliore per noi?)

5
Jay Jee

IMHO, anche per creare pipe denominate, il comando mkfifo è migliore di mknod. Uno, è auto-descrittivo nel suo nome, secondo, consente l'opzione -m per sovrascrivere le impostazioni di umask.

3
Tom