您现在的位置是:首页>LinuxLinux
删除日志不释放磁盘空间,并不杀进程释放磁盘空间
刘海林2021-09-29【Linux】940人已围观
简介删除日志不释放磁盘空间,并不杀进程释放磁盘空间
删除日志后不释放磁盘空间处理方式
问题:
发现某个日志文件大量占用磁盘空间,于是执行 rm 删除文件后,磁盘容量还是处于占用状态。
在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink),然而如果文件是被打开的(有进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。
解决方法:
1、找到被占用的进程杀掉即可,此方法需要杀掉进程。
2、在不杀进程的情况下,释放磁盘空间。
找被删除的日志文件进程进行清空
#找到删除日志文件的进程
lsof -n | grep deleted > log_del.log
当linux打开一个文件的时候,Linux内核会为每一个进程在/proc 目录下创建建立一个以其 pid 为名的目录用来保存进程的相关信息,而其子目录fd保存的是该进程打开的所有文件的fd(fd:file descriptor)。
目录格式类似 /proc/27319/fd
#到 /proc/27319/fd 目录下找到被删除的文件占用链接
ll | grep deleted
#执行文件清空,如果一次不行多操作几次
> 1
通过以上方法,在不杀进程的情况下,顺利释放了磁盘空间。