磁盘已满但 du -h 文件和目录的磁盘使用空间并不大的原因

今天一台 freebsd 服务器 df -h 显示磁盘利用率已 100%,奇怪的是在 / 目录用 du -h 排查大文件时,文件和目录磁盘使用空间只有不到 3Gb

于是在网上查找原因

占用文件的进程还在运行,导致删除的文件不能被释放。比如删除了日志文件,但是生成日志文件的程序还在运行中,导致即使删掉了日志文件也不能释放这些文件的磁盘空间。

解决办法是一、重新启动占用文件的进程,二、重启服务器。第一种方法由于对 freebsd 不熟悉,所以这里没有对大家有所帮助的经验分享。

后记:因为查到的原因是nginx日志文件占用,所以用命令 kill -USR1 pid(nginx的pid) 解决的

那么正确释放一些被进程占用的大文件空间的姿势,如最常见的日志,应该是清空日志 echo "" > access.log

回顾 nginx 的基础,当我们切割日志时

mv $LOGPATH $BACKPATH/$(date +%Y%m%d_%H%M).access.log

这样只把日志文件移走,其实 nginx 对该文件的占用还在,那么接下来应有这样的操作

kill -USR1 `cat /www/server/nginx/logs/nginx.pid`

kill -USR1 在手册里是这么描述的

磁盘已满但 du -h 文件和目录的磁盘使用空间并不大的原因

最后补充 df -hdu -h 的区别:
du disk usage
显示每个文件和目录的磁盘使用空间,也就是文件的大小

df disk free
显示磁盘分区上可用磁盘空间

本作品采用《CC 协议》,转载必须注明作者和本文链接
welcome come back
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
95
粉丝
24
喜欢
156
收藏
348
排名:324
访问:2.9 万
私信
所有博文
社区赞助商