問題タブ [inode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
75 参照

unix - ファイルに 1 対 1 で対応 - UNIX では - ログファイル

Log Unifier プログラムを作成しています。つまり、ログを生成するシステムがあります: my.log、my.log.1、my.log.2、my.log.3...

各反復で、特定のファイルから読み取った行数を保存して、次の反復でその場所から読み続けることができるようにします。

問題は、ファイルがいっぱいになると、ローリングすることです: 最後のログが削除されます... my.log.2 は my.log.3 になります my.log.1 は my.log.2 になります my.log は my.log になります.1 と新しい my.log が作成されます

もちろん、inode を使用してそれらを追跡することもできます。inode はファイルとほぼ 1 対 1 で対応しています。

私が「ほとんど」と言ったのは、次のシナリオを恐れているからです: 2 回の繰り返しの間に、いくつかのファイルが削除され (たとえば、ロギングが非常に高速であるとしましょう)、新しいファイルが作成され、いくつかのファイルの inode が削除されたばかりです。問題は、これらのファイルを古いファイルと間違えて、0 行ではなく (たとえば) 500 行目から読み取りを開始することです。

だから私はこれを解決する方法を見つけたいと思っています-ここに私が考えたいくつかの方向があります-あなたが私を助けるのを助けるかもしれません:

  1. i ノード以外の別の 1 対 1 対応。

  2. ファイルをマークする機能。chmod +x を使用してファイルを既存のファイルとしてマークすること、およびこれらのアクセス許可を持たない新しいファイルの場合-それらが新しいことはわかります-しかし、誰かが手動でアクセス許可を変更した場合、それは私のプログラムを混乱させるでしょう. 他にマークする方法があれば。

  3. ファイルが削除されたときに削除されるファイルへのソフトリンクを作成することを考えました。これにより、どのファイルが削除されたかを知ることができます。

  4. 「作成日」を取得する方法

  5. タイムスタンプ、atime、ctime、mtime を何らかの巧妙な方法で使用するなど、頭に浮かぶアイデアはすべて良いものです。どのファイルが新しいか、または 1 対 1 のファイルを作成するアイデアを知ることができる限り、ファイルへの対応。

ありがとうございました

0 投票する
2 に答える
1135 参照

mysql - iノードの使用法はすべてゼロを示しています:これを理解する方法

テストサーバーの1つで、/ var / lib/mysqlのiノードの使用法がすべてゼロを示していることを確認しました。これは理解できません。df-iの出力は以下のとおりです。

これはすべてゼロの場合に受け入れられますか?

0 投票する
1 に答える
936 参照

tcp - inode カラム (proc/net/tcp(6)) の値は何を意味しますか?

これは /proc/net/tcp ファイルの一部です:

sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode

6:1904A8C0:AC35 9603020A:1ED0 01 00000000:00000000 00:0000000000000000000055 0 8506 2 C1624900 129 0 0 10 -1
7:1904A8C0:E8C4 13A11C1F:06000000000000000000000000000000000000000000000000

inode列の値が何を意味するのか、誰か説明してもらえますか? 私は 2 つのケースに興味があります。

8506 2 c1624900 129 0 0 10 -1

0 3 d6267780

最初の値が inode 番号 (一意のファイル番号) であることだけを知っています。

0 投票する
2 に答える
1521 参照

c - inode 機能はどこから取得しますか?

Linux 2.4 から 3.0 に移植しようとしている Linux ドライバーがいくつかあります。この長い期間の間に、ioctl (現在は unlocked_ioctl) の引数リストが少し変更されました。

コードは inode を使用してマイナー バージョンを取得し、それを他のコマンドに渡していました。inode は ioctl パラメーター リストで指定された "free-be" ではありません。どうすれば取得できますか?

ファイルポインタから派生することは可能ですか? または、_open() メソッドに表示されたときにグローバル ポインターを「保存」する必要がありますか? 他に良い方法があれば避けたいです。

0 投票する
2 に答える
3178 参照

android - Android ファイルシステムと inode

私は最近、Unix の inode とその目的について学びました。特に、.inode はファイルシステム全体で一意であることを知りました。

私の質問は、ユーザーが Micro SD カードを Android デバイスに挿入した場合、そのカードは既存のファイル システムの一部になりますか、それとも別のファイル システムになりますか?

別の言い方をすれば、内部ストレージと外部ストレージ間で inode を複製できますか?

どうもありがとう、P

0 投票する
1 に答える
1373 参照

linux - ディレクトリを含むパーティション上の空き inode の数

特定のディレクトリに膨大な数の小さなファイルを生成する Python スクリプトを Linux で実行しています。ただし、ext4 などの多くの Linux ファイルシステムでは、作成時に固定数の inode が設定されているため、開始前にそのディレクトリに多くのファイルを保存できることを確認したいと考えています。コマンド ラインから、 を使用してこの番号を確認できますdf -i /some/directory

Pythonで、ディレクトリが存在するファイルシステム上の空きiノードの数をどのように見つけますか?

0 投票する
1 に答える
730 参照

filesystems - iノードからのファイルの最大サイズ

誰かが私にこれに対する答えを説明してもらえますか?クイズでこれを受け取ったのですが、答えられませんでした。

と仮定する

  • ディスク内のすべてのブロックのサイズは4KB(4096バイト)です。
  • iノードのトップレベルは、サイズ4KBのディスクブロックに格納されます。
  • データブロックの場所を除くすべてのファイル属性は、合計128バイトを占めます(上記の4KBのうち)。
  • 各直接ブロックアドレスは8バイトのスペースを占有し、サイズ4KBのディスクブロックのアドレスを提供します。
  • iノードの最初のレベルの最後の3つのエントリは、それぞれ1つ、2つ、および3つの間接ブロックを指します。

質問:iノードの直接ブロックエントリを介してアクセスできるファイルの最大サイズはどれくらいですか?

0 投票する
1 に答える
2291 参照

c - Linuxカーネルで「ls -a」からファイルを非表示/再表示する方法は?

コマンド 'ls -a' を実行した後、ファイルまたはフォルダーが表示されないようにする独自のシステム コールを実装して、ファイルまたはフォルダーを削除したいと考えています。

基本的に、「ls」や「ls -a」などのコマンドからファイルを隠したいと思います。そして、同じものからそれを再表示します。

つまり、完全に削除したくないということです。ユーザーから非表示にするだけです。

私はそれが何かをしなければならないと考えています

「readdir()」を操作することで、実際にファイルを非表示にできる場所から。

しかし、私はそれを操作する方法がわかりません。

何か助けはありますか?

PS:- Linux カーネル バージョン 3.5.x x86 64 ビット。/linux/fs/namei.c で変更を行っています

0 投票する
1 に答える
246 参照

file - 多くの小さなファイルに適したファイルシステムおよび/またはアーカイブシステム

多く (5 億 - 9 億) の小さな (2kB - 9kB) ファイルを保存しようとしています。

ほとんどの汎用ファイルシステムは、膨大な数のファイルを処理できないか、多くのファイルで速度が低下するか、ブロックサイズが非常に大きいため、これには適していないようです。

これは一般的な問題のようですが、私が見つけたすべての解決策は、小さなファイルを inode に保存するときに、それ自体とほぼ同じサイズのストレージ効率への打撃を受け入れるだけのようです。

したがって

何億もの小さなファイルを処理するように特別に設計されたファイルシステムはありますか?

また

小さなファイルをオンザフライでアーカイブし、1 つの大きなファイルをディスクに書き込むための運用レベルのソリューションはありますか?

0 投票する
1 に答える
745 参照

linux - Linuxでファイルの一意性を判断するにはどうすればよいですか?

ここでの「独自性」とは、時間にも関係します。

  • ファイルシステム上にファイルが作成されるたびに、一意のファイルがあります。
  • 同じディレクトリにある同じ名前のファイルで、異なるタイムステージに表示されるファイルは異なります。
  • 「一意」の定義は、ファイルの内容とは何の関係もありません。

まず、iノードを使用してファイルを識別します。iノードが異なるファイルは異なります。ファイルは、移動したり触れたりしても、ライフサイクル内で常に固定のiノードを持っています。

ただし、iノードはOSによって再利用される場合があります。ファイルA.txtにinode22345がある場合、A.txtを削除してB.txtを作成すると、B.txtはode22345にある可能性があります。

ファイルの作成時間がある場合はどうなりますか?これにより、inode+creation-timeを使用してファイルシステムの履歴内のファイルを識別できます。しかし、Linuxはそれを提供しませんでした。

inode + file_md5も試しますが、A.txtとB.txtの内容が同じ場合はどうなりますか?

それで、何かアイデアはありますか?

===========編集===========

私のシナリオは、一種のログファイル収集です。ロギングディレクトリでは、ログファイルが作成、移動、および削除される場合があります。ファイルオフセットからタイムスタンプへのマッピングを使用して、作業のような「チェックポイント」を実行します。では、今述べた「ファイル」をどのように汚すのでしょうか。