
du
df
df
du
df
df -h
df
du
du -sh
du
两者最大的区别在于,
df
du
这绝对是Linux系统管理员最常遇到的困惑之一。我个人觉得,最主要的原因,也是最让人头疼的,就是“被删除但仍被进程占用的文件”。
想象一下,你有一个日志文件,比如
/var/log/myapp.log
rm /var/log/myapp.log
du
myapp
df
要验证这种情况,你可以使用
lsof
lsof | grep deleted
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 12345 root 12w REG 8,1 12345678 1234 /var/log/myapp.log (deleted)
这里的
SIZE/OFF
再者,还有一些不那么常见但也会导致差异的情况。比如:
du
df
du
df
df
du
du
df
当你想知道具体是哪些文件或目录吃掉了你的磁盘空间时,
du
最常用的组合是
du -sh
s
h
例如,要查看当前目录下所有文件和子目录的总大小:
du -sh .
如果你想知道当前目录下,哪些子目录占用空间最大,可以这样:
du -sh * | sort -rh | head -n 10
这条命令会列出当前目录下所有文件和目录的大小,然后按大小倒序排列,并显示前10个最大的。这招特别好用,能让你快速定位问题。
如果你要检查某个特定路径,比如
/var/log
du -sh /var/log
然后,如果你想深入到
/var/log
du -sh /var/log/* | sort -rh | head -n 10
需要注意的是,
du
-x
du -shx /path/to/directory
这样,
du
/path/to/directory
对于更复杂的磁盘空间分析,我个人推荐使用
ncdu
sudo apt install ncdu
sudo yum install ncdu
当你的服务器突然报出磁盘空间不足的警报时,别慌,我们有套相对高效的排查流程。
确认哪个文件系统满了: 这是第一步,也是最关键的一步。运行
df -h
/
/var
/home
检查“幽灵文件”(deleted but open files): 如果
df
du -sh /path/to/that/partition
du
df
lsof | grep deleted
(deleted)
COMMAND
PID
定位大文件或大目录: 如果
df
du
du
/
/
du -shx /* | sort -rh | head -n 20
/var
/opt
/home
/var
du -shx /var/* | sort -rh | head -n 20
常见的“大胃王”区域:
/var/log/
syslog
journal
/tmp/
/home/
/opt/
/var/lib/docker/
利用find
find
find /path/to/check -type f -size +1G -print0 | xargs -0 du -h
find /path/to/check -type f -mtime +30
delete
find /path/to/check -type f -name "*.log" -mtime +7 -delete
.log
记住,在删除任何文件之前,务必确认其重要性,或者先将其移动到其他位置作为备份。误删关键系统文件可能会导致系统崩溃。
以上就是Linux磁盘使用统计命令du和df区别的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号