inode 耗尽

xaa*_*aav 27 disk-usage

我无法更新 Ubuntu,因为我有 99% 的 inode 使用率。对我来说,缓解这个问题的最简单方法是什么?

谢谢你的帮助。

fab*_*or4 24

inode 的数量是在分区格式化时设置的。通常,创建的 inode 数量几乎可以满足任何目的;但是,如果您有大量非常小的文件,那么您可以在磁盘已满之前用完 inode。

您需要找到系统上成千上万个正在耗尽 inode 的小文件,然后删除它们,或者将它们移动到专门设置有大量可用 inode 的分区。分区格式化后,无法更改分区上可用的 inode 数。

paxdiablo 在 stackoverflow 上编写的脚本可能是检查您可能不知道的过度使用小文件的简便方法。又来了:

#!/bin/bash
# count_em - count files in all subdirectories under current directory.
echo 'echo $(ls -a "$1" | wc -l) $1' >/tmp/count_em_$$
chmod 700 /tmp/count_em_$$
find . -mount -type d -print0 | xargs -0 -n1 /tmp/count_em_$$ | sort -n
rm -f /tmp/count_em_$$
Run Code Online (Sandbox Code Playgroud)

将此脚本放在文本文件 ~/bin/count_em 中,然后发出命令

chmod +x ~/bin/count_em
Run Code Online (Sandbox Code Playgroud)

使其可执行。如果您必须创建目录 ~/bin ,那么它还不会在可执行路径中,因此只需注销并重新登录即可。

要运行程序,您只需键入

count_em
Run Code Online (Sandbox Code Playgroud)

它会按目录列出当前目录和子目录中所有文件的数量,最多的最后一个。非常便利!


小智 11

您还可以使用以下命令显示按 inode 数量排序的目录列表: du --inodes -d 3 / | sort -n | tail

从那里,您可以确定要删除的目录

  • Ubuntu 14.04 上“无法识别的选项 '--inodes'”,仅供参考 (2认同)
  • 2019 年为什么使用 ubundu 14.04?我看到它从 2013 年 2 月开始有 coreutils 8.21,`--inodes` 选项是在 2013 年 7 月添加的 lmao (2认同)