web-dev-qa-db-ja.com

mknodコマンドは何に使用されますか?

私はUbuntuをメインのOSとして使い始めたばかりで、私がしてはいけないこと、そして人々が過去に行った悪いことから学びたいと思っていました。私は遭遇しました NIXおよびLinuxのシステム管理者が行ったホラーストーリーに関するこれらの電子メール 彼らが新しい場所にいるときに、自分のシステムで行っていました。それらの多くは、mknodコマンドを使用して、問題を分散および修正することを伴いました。私はこのコマンドについて聞いたことがなく、Ubuntuのmanページはあまり役に立ちません。だから私の質問は、このコマンドは何に使用されているのですか、そして日常的に使用するのに役立ついくつかの例は何ですか?

52
Mark Tomlin

mknodは、当初、/dev/に入力するキャラクターデバイスとブロックデバイスを作成するために使用されていました。現在、udevのようなソフトウェアは、対応するハードウェアがカーネルによって検出されると、仮想ファイルシステム上のデバイスノードを自動的に作成および削除しますが、元々/dev/内の単なるディレクトリでした。インストール。

ですから、ほぼ完全な災害が発生して/dev仮想ファイルシステムが読み込まれなかったり、udevが壮観に失敗したりする場合は、mknodを使用して、少なくとも基本的なデバイスツリーを入念に再配置します取得するには何かバックアップを実行できます...しかし、そうです、それはシステム管理者のホラーストーリーの時間です。個人的には、レスキューUSBスティックまたはCDをお勧めします。

名前付きパイプの作成は別として、エンドユーザーが自分で気にする必要のある1つの可能な日常の使用を考えることはできません。それでも、「日常の使用」の定義を拡張しています。

47
Shadur

これで名前付きパイプを作成できます。

あるプログラムでそれを使用してそれを読み取り、別のプログラムでそれを使用して書き込みます。

プロセス間の通信を容易にします。

それ以外の場合は、存在しないデバイス用にデバイスファイルを作成できます。

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

7
polemon

Oracle DBAはrawデバイスを使用してOracle ASMディスクグループを作成するため、定期的にmknodを使用してデバイスをリンクします。

上記の返信は、システム管理者ではないため、非常に役に立ちました。ストレージ管理者の観点からmknodを使用することはまれである可能性があることを指摘したいと思いますが、Oracle ASMの観点からはこれが一般的な使用法です。 (誰かが私たちのためにより良い方法を思いつくかもしれませんか?)

5
Jay Jee

私見、名前付きパイプを作成する場合でも、mkfifoコマンドはmknodよりも優れています。 1つ目は、その名前がわかりやすいこと、2つ目は、-mオプションでumask設定を上書きできることです。

3
Tom