it-swarm.com.de

Wofür wird der Befehl mknod verwendet?

Ich habe gerade angefangen, Ubuntu als mein Hauptbetriebssystem zu verwenden, und ich wollte etwas über Dinge lernen, die ich nicht tun sollte, und durch die schlechten Dinge lernen, die die Leute in der Vergangenheit getan haben. Ich stieß auf diese E-Mail über Horrorgeschichten, die UNIX- und Linux-Systemadministratoren auf ihrem eigenen System gemacht hatten, als sie neu waren. Viele von ihnen verwendeten den Befehl mknod, um ein Problem zu beheben und zu beheben. Ich habe noch nie von diesem Befehl gehört und die Manpage in Ubuntu ist nicht sehr hilfreich. Meine Frage ist also, wofür dieser Befehl verwendet wird und was sind einige Beispiele, wo er im täglichen Gebrauch nützlich ist?

52
Mark Tomlin

mknod wurde ursprünglich verwendet, um die Zeichen zu erstellen und Geräte zu blockieren, die /dev/. Heutzutage erstellt und entfernt Software wie udev automatisch Geräteknoten im virtuellen Dateisystem, wenn die entsprechende Hardware vom Kernel erkannt wird, aber ursprünglich /dev war nur ein Verzeichnis in /, das während der Installation ausgefüllt wurde.

Also ja, im Falle einer fast vollständigen Katastrophe, die das /dev virtuelles Dateisystem, das nicht geladen werden soll und/oder udev spektakulär versagt, wobei mknod verwendet wird, um mindestens einen rudimentären Gerätebaum sorgfältig neu zu füllen, um etwas Backup zu erhalten ... Aber ja, das ist die Zeit der Sysadmin-Horrorgeschichte. Persönlich empfehle ich einen Rettungs-USB-Stick oder eine Rettungs-CD.

Abgesehen von der Erstellung von Named Pipes kann ich mir keinen einzigen möglichen täglichen Gebrauch vorstellen, mit dem sich ein Endbenutzer befassen müsste - und selbst das erweitert die Definition des Begriffs "alltäglicher Gebrauch".

47
Shadur

Sie können damit eine Named Pipe erstellen.

Ich benutze es mit einem Programm, um daraus zu lesen, und einem anderen, um darin zu schreiben.

Erleichtert die Kommunikation zwischen Prozessen.

Andernfalls können Sie Gerätedateien für Geräte erstellen, die nicht vorhanden sind.

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

7
polemon

Da Oracle-Datenbankadministratoren an Raw-Geräten arbeiten, um Oracle ASM-Datenträgergruppen zu erstellen, verwenden wir regelmäßig mknod, um Geräte zu verknüpfen.

Die obigen Antworten waren für mich sehr hilfreich, da wir keine Systemadministratoren sind. Ich wollte nur darauf hinweisen, dass es aus Sicht der Speicheradministratoren selten ist, mknod zu verwenden, aber aus Sicht von Oracle ASM ist dies eine häufige Verwendung. (Könnte jemand einen besseren Weg für uns finden?)

5
Jay Jee

IMHO, selbst für die Herstellung von Named Pipes, ist der Befehl mkfifo besser als mknod. Erstens ist es in seinem Namen selbsterklärend. Zweitens erlaubt es die Option -m, die Umask-Einstellungen zu überschreiben.

3
Tom