Unix 机器上的空间检查

Unix 机器上的空间检查

我在其中一台 UNIX 服务器上遇到空间问题。我正在执行以下命令来检查空间利用率。但这个命令非常慢,需要几个小时才能给出结果。

du -sg * | sort -nr >> /my/home/dir/space_20150303

有没有更好的方法来检查空间利用率?

答案1

这并不奇怪:除非系统已经为您跟踪,否则磁盘使用命令必须遍历所有目录条目,读取它们的大小并计算总和。

如果文件系统是远程安装的(NFS、Samba……),du如果可能的话在服务器上运行,它会比在远程客户端上运行快得多。

由于您想了解所有文件,因此有一种方法可以跟踪磁盘使用情况并获得即时反馈。但是,这需要由系统管理员启用。这条路是配额。可以在不设置限制的情况下激活配额;这样您仍然可以跟踪每个用户使用的空间。

答案2

df

检查文件系统磁盘空间使用情况

df -a

显示所有文件系统磁盘空间使用情况的信息

df -h

以人类可读格式显示磁盘空间使用情况以及 GB 中的文件系统信息

df -hT /home

显示/home文件系统信息

答案3

通常,可能只是一些大文件占用了意外的空间。找到这些信息可能很快,通常不会超过一两分钟。

寻找这些

cd (mount point)
find . -xdev -size +20000 -ls > /tmp/bigfiles

挂载点可以是根文件系统的 / 或您感兴趣的 /home。例如 cd /home

-xdev 表示不要跨越挂载点进入另一个文件系统,因为您只对已满的文件系统感兴趣。

+20000 表示仅查找大于 20000 x 512 字节块的文件或目录。例如,20000 大约为 10 mb。

-ls 表示列出文件或目录信息,类似于 ls -ld。

我通常将输出发送到 /tmp/bigfiles,这样我就可以修复每个问题,然后查看下一个问题,而无需重做 find cmd。

使用 less /tmp/bigfiles 查看 find cmd 的输出。

相关内容