linux里的文件被删除后,空间没有被释放是因为在Linux系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。
解决方法:
1、先df -lh查看一下磁盘使用状况
2、找到被删除文件所在的分区/root
3、查看被删除了的所有文件:lsof -n |grep deleted
查看到很多的delete所占进程端口号比较多不可能一个个删除。可以使用批量删除。
lsof -n|grep delete | awk '{print "kill -9 " $2}' > bb.sh
执行上面命令生成b.sh
然后执行b.sh脚本
当然kill -9这种方式虽然简单暴力,但是会有很多隐患,而且生产环境尽量不要让服务中断,我们可以在这些被进程锁定的日志文件重定向覆盖为空内容即可,这样文件的指针则会更新记录:空内容的日志文件所占空间为0,非常方便,磁盘空间立即释放