我在根分区上遇到磁盘空间问题,因此我查看了不重要的日志并删除了可以删除的内容。
其中一个文件“mysql-slow.log”有 32GB 大,但是当我删除它时,它并没有释放磁盘空间。我使用df -h
命令来检查。
根分区格式为 ext4。
谢谢,
答案1
在 Linux/Unix 世界中,文件删除并不一定会立即释放磁盘空间,它仅仅将文件与文件系统解除链接。
如果有进程打开了要删除的文件的文件句柄(这在 syslog 守护进程中很常见,在 MySQL 中就是 mysql-slow.log),则不会释放空间,直到要求持有文件的进程重新打开文件句柄(HUP,挂断信号),或者重新启动该进程。
如果您不知道哪个进程实际上保持文件打开,请使用lsof -n | grep filename
,或者如果您想查看系统中存在哪些标记为已删除但仍在使用的文件,lsof -n | grep deleted
答案2
df
mysqld
应在重新启动服务后更新。