问题标签 [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 - 与文件一一对应 - 在 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 刚刚被删除。现在的问题是 - 我会将这些文件误认为是旧文件 - 并从第 500 行(例如)而不是 0 开始读取。

所以我希望找到一种方法来解决这个问题——这里有几个我想到的方向——可以帮助你帮助我:

  1. 除 inode 之外的另一个 1 对 1 对应关系。

  2. 标记文件的能力。我考虑过使用 chmod +x 将文件标记为现有文件,对于没有这些权限的新文件-我会知道它们是新的-但是如果有人要手动更改权限,那会混淆我的程序. 所以如果你有任何其他的方法来标记。

  3. 我考虑过创建指向文件的软链接,当文件被删除时会被删除。这样我就可以知道哪些文件被删除了。

  4. 任何获取“创建日期”的方法

  5. 想到的任何想法——也许以某种巧妙的方式使用时间戳、atime、ctime、mtime——一切都会很好,只要它们能让我知道哪些文件是新的,或者任何创建一对一文件的想法文件的对应关系。

谢谢

0 投票
2 回答
1135 浏览

mysql - inode 用法显示全为零:如何理解这一点

在其中一台测试服务器上,我们观察到 /var/lib/mysql 的 inode 使用情况显示全为零。我们无法理解这一点。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 00:0000000000000000000000000055550555 0 8506 2 C1624900 129 0 10 10 -1
7:1904A8C0:E8C4 13A11C1F:E8C4 13A11C1F:0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000099性使00000000.00.州000000000000000000000000000000000000000000000000000000000000000来

谁能解释一下 inode 列中的值是什么意思?我对两种情况感兴趣。

8506 2 c1624900 129 0 0 10 -1

0 3 d6267780

我只知道第一个值是 inode 号(唯一文件号)。

0 投票
2 回答
1521 浏览

c - 您从哪里获得 inode 功能?

我有一些 linux 驱动程序正在尝试从 linux 2.4 移植到 3.0。在这段漫长的时间里,ioctl 的参数列表(现在为 unlocked_ioctl)发生了一些变化:

该代码使用 inode 获取次要版本并将其传递给其他一些命令。现在 inode 不是 ioctl 参数列表中给出的“free-be”,我怎样才能得到它?

是否可以从文件指针派生?或者当它出现在 _open() 方法中时,我应该“保存”一个指向它的全局指针吗?如果有更好的方法,我宁愿避免这种情况。

0 投票
2 回答
3178 浏览

android - Android 文件系统和 inode

我最近了解了 Unix inode 及其用途。特别是,我了解到 an.inode 在文件系统中是独一无二的。

我的问题是:如果用户将 Micro SD 卡插入他们的 Android 设备,该卡会​​成为现有文件系统的一部分还是成为单独的文件系统?

或者,换一种说法: inode 可以在内部和外部存储之间复制吗?

非常感谢,P

0 投票
1 回答
1373 浏览

linux - 包含目录的分区上的空闲 inode 数

我有一个在 Linux 下运行的 Python 脚本,它在给定目录中生成大量小文件。但是,许多 Linux 文件系统(如 ext4)在创建时设置了固定数量的 inode,因此我想确保在开始之前可以将这么多文件保存到该目录中。从命令行,您可以使用df -i /some/directory.

在 Python 中,如何找到该目录所在的文件系统上的空闲 inode 数量?

0 投票
1 回答
730 浏览

filesystems - 来自 inode 的文件的最大大小

有人可以向我解释这个问题的答案。我在测验中得到了这个,无法回答。

假使,假设

  • 磁盘中的所有块大小为 4KB(4096 字节)。
  • inode 的顶层存储在大小为 4KB 的磁盘块中。
  • 除数据块位置外,所有文件属性一共占用 128 个字节(在上述 4KB 之外)。
  • 每个直接块地址占用 8 个字节的空间,并给出大小为 4KB 的磁盘块的地址。
  • inode 第一级的最后三个条目分别指向单、双和三间接块。

问题:通过 inode 的直接块条目可以访问的文件的最大大小是多少?

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 上时,我能找到的所有解决方案似乎最终都会受到存储效率的影响。

因此

是否有专门设计用于处理数亿个小文件的文件系统?

或者

是否有生产级解决方案可以即时归档小文件并将一个大文件写入磁盘?

0 投票
1 回答
745 浏览

linux - How to determine the uniqueness of a file in linux?

What i mean to "uniqueness" here also concerns about the time.

  • Every time a file created on file system, there's a unique file.
  • Files in same directory with same name but appears in different time stage are different.
  • Definition to "unique" has nothing to do with file content.

Firstly, i use inode to identify a file, files with different inode are different, a file alway have a fixed inode within it's lifecycle even it's been moved and touched.

BUT, the inode may be reused by the OS. If file A.txt has inode 22345, if i delete A.txt and create B.txt, B.txt MAY have in ode 22345.

What if there's creation-time for files? So that I can use inode+creation-time to identify a file in the file system's history. But linux didn't offer that.

I also try inode+file_md5, but what if A.txt and B.txt have same con ten?

So, do you have any ideas?

=========== edit ===========

My scenario is a kind of log file collecting. In a logging directory, log files maybe created, moved and deleted. We use mapping from file offset to timestamp to do some "check point" like work. So how to defile the "file" mentioned just now?