1.Linux中如何解决文件已删除但空间不释放的案例(lsof):
现象:运维的监控系统发来通知,报告一台服务器空间满了,登录服务器查看,根分区确实没有空间了: df -h
解决思路:第一步:
(1)查找原因:(服务器的删除策略:由于Linux没有回收站功能,所以线上服务器上所有要删除的文件都会先移动到系统/tmp目录下,然后定期清除/tmp目录下的数据。)但是通过检查发现这台服务器的系统分区中并没有单独划分/tmp分区,这样/tmp下的数据其实占用了根分区的空间。那么删除/tmp目录下一些占空间较大的数据文件即可,检查/tmp下最大的三个数据文件。
du -sh /tmp/* |sort -nr |head -3
(2)解决方案:通过命令输出发现在 /tmp 目录下有很大的文件比如access_log,这个文件是Apache 产生的访问日志文件,所以是很久没有清理Apache日志文件了,在确认此文件可以删除之后,执行删除操作:
rm /tmp/access_log
接着查看根分区空间是否释放:df -h
第二步:如若从上述结果看到根分区空间依旧没有释放的话,再继续检查:
(1)查找原因:一般来说不会出现删除文件后空间不释放的情况,但是也存在例外,比如文件被进程锁定,