标签: inode

tail -f 不跟踪文件更改

我最近正在研究使用tail -f来监视一些文本文件,例如:tail -f /var/sometext.

但是,当我进行一些测试时,它似乎不起作用。我所做的是我创建了一个新文件并运行:tail -f /home/name/text然后,我在 vim 中打开了日志并进行了一些编辑,保存了它,似乎 tail 没有“看到”更改。

奇怪的是,跑步echo "hello" >> /home/name/text似乎工作正常(尾巴看到了变化)。我在某处读到这与保存文件时创建的文件描述符和新 inode 有关。

有人可以为我解释一下吗?我不太明白这实际上是如何工作的,但我知道文件描述符是什么。

linux inode file-descriptors tail

20
推荐指数
1
解决办法
9704
查看次数

如何获取实际目录大小(超出du)?

如何使用 UNIX/Linux 标准工具获取实际目录大小?

替代问题:如何让du向我显示实际目录大小(而不是磁盘使用情况)?

由于人们似乎对术语“大小”有不同的定义:我对“目录大小”的定义是该目录中所有常规文件的总和。

我不关心目录 inode 的大小或文件在相应文件系统上占用的任何大小(块 * 块大小)。一个包含 3 个文件的目录,每个文件 1 个字节,目录大小为 3 个字节(根据我的定义)。

使用 du 计算目录大小似乎不可靠。
例如,mkdir foo && du -b foo报告“4096 foo”,4096 字节而不是 0 字节。对于非常大的目录,报告的目录大小du -hs可能会减少 100 GB (!) 甚至更多(压缩文件系统)。

那么必须使用什么(工具/选项)来获取实际目录大小?

linux unix gnu inode du

20
推荐指数
3
解决办法
3万
查看次数

使用 inode 编号在 Linux 上删除文件

如果您在 UNIX/Linux 上使用特殊字符(例如 )创建文件touch \"la*,则无法使用rm "la*. 您必须使用 inode 编号(\我知道,如果您在名称前添加 ,则可以,但您必须以用户身份猜测它在文件创建中使用过)。

我检查了 rm 的联机帮助页,但没有提到 inode 编号。做rm inodenumber也不行。

这是什么命令?

linux unix inode

15
推荐指数
4
解决办法
3万
查看次数

在 linux 和 ext3/4 上从原始设备中的偏移量反向查找 inode/文件?

在 linux 中,给定原始磁盘设备的偏移量,是否可以映射回分区 + inode?

例如,假设我知道字符串“xyz”包含在 /dev/sda 上的字节偏移量 1000000 处:(例如 xxd -l 100 -s 1000000 /dev/sda 显示以“xyz”开头的转储)

1)如何确定偏移量 1000000 位于哪个分区(如果有)?(我想这很容易,但为了完整起见,我将其包括在内)

2) 假设偏移量位于分区中,我该如何查找它属于哪个 inode(或确定它是空闲空间的一部分)?大概这是特定于文件系统的,在这种情况下,有人知道如何为 ext4 和 ext3 执行此操作吗?

linux ext3 inode ext4

11
推荐指数
1
解决办法
7169
查看次数

写入 /tmp 时“超出磁盘配额”,但空间充足(linux)

我有一个 VPS。它由臭名昭著的 plesk 管理。

今天我开始看到消息(起初是通过 wordpress,但也来自命令行 shell),说:“超出磁盘配额”。

user@machine:~$ echo aaa > /tmp/aaa
-bash: /tmp/aaa: Disk quota exceeded
Run Code Online (Sandbox Code Playgroud)

但是机器上有很多空间,只有1个分区。

user@machine:~$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/vzfs             100G   24G   77G  24% /
Run Code Online (Sandbox Code Playgroud)

我从 /tmp/* 中删除了所有文件,但仍然如此。

我对“vzfs”一无所知,也许这就是罪魁祸首?

出了什么问题?以及如何修复它?

解决方案!

(如果您不使用 Parallels Plesk,请参阅 @Adalee 的回答)

请参阅@deltik 的解决方案,与 Parallel 的系统相关,就像我的情况一样。

df -i 立即给出了一个可笑数量的 inode:18,446,744,069,620,218,961,这对于 wordpress 网站来说是疯狂的。

我进一步探索并发现 qmail 的队列中充满了 inode(它充满了一些黑客的尝试使用我的机器发送垃圾邮件,以及失败回复)

修复 qmail 在这里不相关,但我的解决方法是相关的:

  1. 停止了 qmail 的服务
  2. 我无法将qmhandle下载到超出配额的系统,所以我不得不
  3. 提取脚本并将其上传到另一个网站,
  4. 使用以下命令删除队列:
  5. perl <(wget -O - http://link.to.my/script.pl ) -D

这样脚本直接从网络运行(这不是一个安全的做法,但我自己把脚本放在那里),带有命令行选项。

感谢@deltik 在现场了解并及时识别这种特殊设置,并提供进一步诊断的方法!!!

linux parallels inode quota

9
推荐指数
2
解决办法
2万
查看次数

转到未知名称的目录

在解压 tarball 时,我遇到了一个ls报告为“??????????????? ???????”的目录。想必,名字不是unicode?无论如何,我无法找到访问该文件夹的方法。我试过了cd $(find -inum inode_number),但这给了我

"bash: cd: ./??????????: No such file or directory".
Run Code Online (Sandbox Code Playgroud)

是否有另一种方法可以通过其 inode 号直接访问文件夹?

inode filenames directory-listing

8
推荐指数
1
解决办法
2764
查看次数

磁盘块和扇区有什么区别?

我知道扇区是分割轨道的单位,但我有这个疑问,因为我正在寻找有关 inode 可以支持的最大指针数的信息。我发现这个数字取决于块大小。这个尺寸是可变的吗?计算机关闭时是否保持此大小?谢谢你的帮助,我花了一些时间寻找这个,但我不确定。

memory hard-drive inode sectors blocking

8
推荐指数
1
解决办法
1万
查看次数

XFS “设备上没有剩余空间”的错误陈述

我在Ubuntu 14.04.1 LTS上的LVM上有一个XFS 分区的服务器设置。将文件复制到主分区时,显示“设备上没有剩余空间”。

df -h显示足够的空间:

/dev/mapper/prod--vg-home     35G   21G   15G  60% /home
Run Code Online (Sandbox Code Playgroud)

我还使用 fallocate 在同一个家庭帐户中几乎完全填充磁盘,以确保配额和其他磁盘空间问题都不相关:

/dev/mapper/prod--vg-home     35G   34G  1.5G  96% /home
Run Code Online (Sandbox Code Playgroud)

df -i还显示足够的 inode:

/dev/mapper/prod--vg-home   36700160  379390 36320770    2% /home
Run Code Online (Sandbox Code Playgroud)

我还在同一个家庭帐户中使用了大量的小随机文件复制了这个问题

mkdir 1
cd 1
dd if=/dev/zero of=masterfile bs=10000000 count=1
split -b 10 -a 10 masterfile
cd ..
cp -R 1 2
Run Code Online (Sandbox Code Playgroud)

这再次导致“设备上没有剩余空间”,几乎不需要额外的空间(大约 30MB)并且df -i提到:

/dev/mapper/prod--vg-home   36700160 1310464 35389696    4% /home
Run Code Online (Sandbox Code Playgroud)

我确实在同一台机器上进行了 …

linux inode lvm xfs

6
推荐指数
1
解决办法
4444
查看次数

如何为 linux 文件系统计算适当数量的 inode/block 大小

我有一个旧的 reiser 文件系统,我要将其转换为 Ext3。我遇到的问题是确定此分区的正确块和 inode 大小。

该分区有 44 GB 大,必须容纳 3,000,000 多个大小在 1 kb 到 10kb 之间的文件,我如何确定 inode 和块大小的最佳比率?

下面是我尝试过的东西,看起来不错,但使复制文件非常慢。

mkfs.ext3 \
 -t ext3 \
 -c \
 -c \
 -b 1024 \
 -i 4096 \
 -I 128 \
 -v \
 -j \
 -O sparse_super,filetype,has_journal\
  /dev/sdb1
Run Code Online (Sandbox Code Playgroud)

谢谢。

linux filesystems ext3 inode conversion

5
推荐指数
1
解决办法
2万
查看次数

具有 inode 关闭在磁盘上的 Linux 文件系统

我想ls -laR /media/myfs尽可能快地在 Linux 上运行。我将在文件系统上有 100 万个文件,总文件大小为 2TB,一些目录包含多达 10000 个文件。我应该使用哪个文件系统以及我应该如何配置它?

据我了解,之所以ls -laR慢是因为stat(2)每个inode(即100万stat(2)秒),而且由于inode随机分布在磁盘上,每个都stat(2)需要一次磁盘寻道。

以下是我想到的一些解决方案,但我都不满意:

  • 在 SSD 上创建文件系统,因为 SSD 上的查找操作很快。这是行不通的,因为 2TB SSD 不存在,或者它太贵了。

  • 创建一个跨越两个块设备的文件系统:一个 SSD 和一个磁盘;磁盘包含文件数据,SSD 包含所有元数据(包括目录条目、inode 和 POSIX 扩展属性)。是否有支持此功能的文件系统?它会在系统崩溃(停电)中幸免于难吗?

  • 使用find /media/myfs在ext2,ext3和ext4的,而不是ls -laR /media/myfs,因为前者可以在优势d_type领域(见getdents(2)手册页),因此它不具有统计。不幸的是,这不符合我的要求,因为我还需要所有文件大小,find /media/myfs但不能打印。

  • 使用文件系统,例如 VFAT,它将 inode 存储在目录条目中。我很喜欢这个,但是 VFAT 对我来说不够可靠和灵活,而且我不知道有任何其他文件系统可以做到这一点。你?当然,在目录条目中存储 inode 不适用于链接数超过 1 的文件,但这不是问题,因为我的用例中只有几十个这样的文件。

  • /procor 中调整一些设置,sysctl以便 inode 永远锁定到系统内存。这不会加快第一个ls -laR /media/myfs,但它会使所有后续调用非常快。我怎样才能做到这一点?我不喜欢这个想法,因为它不会加速第一次调用,目前需要 30 分钟。此外,我还想在内存中锁定 POSIX 扩展属性。我该怎么做?

  • 使用具有在线碎片整理工具的文件系统,可以指示将 …

linux filesystems inode

5
推荐指数
1
解决办法
2013
查看次数