背景
使用rm -rf 删除一个一直被进程正在占用的文件时,虽然文件在文件夹中被删除的文件不再显示,但是查看物理磁盘,发现磁盘容量未增加!!!
原因
在使用rm -rf 删除一个进程一直占用的文件,虽然文件不再显示,但是删除的仅仅是被删除的文件的链接,文件实际还未删除,还是会一直占用着存储空间
解决办法
找到占用文件的进程 将进程 kill 掉,文件便真正删除掉了。
不停机清理指定文件内的内容
背景
在实际工作中,有些进程服务是没办法停止的,因为一个服务会持续不断的有人来访问,当将服务停掉意味着服务也没有办法访问了,如果是一些重要的服务例如支付服务停掉的话是非常严重事故,所以服务是不可以停掉的,但是只要服务启动这那么就会不断的产生日志,根据上面说的,如果进程一直占用一个文件,文件是无法删除掉的,同理这个日志文件也就没办法真正的删除,那么如何在服务不停止的情况下删除日志呢?
解决办法
echo " " > 指定文件
解释
将一个空格重定向到需要清理的文件中,覆盖原文件中的内容,从而达到清理文件内容目的
结语
如果诸位有什么更好的办法欢迎在下面留言交流,到目前为止我想到了这一个办法,另外一个办法就是将日志文件按时间存储,每隔指定时间生成一个新的文件,这个办法我在Python中配置过可以用,但是像原生的Linux服务的像Nginx一类的如果处理目前因为没有深入研究过还不知道~~~