linux删除了业务进程正在使用的文件,又不能停止进程,如何释放文件占用的磁盘空间

        一台linux分区使用率告警,同事为了清理空间,通过du -sh *查到应用的日志文件占用很高,他直接rm删除了日志文件。但df -h看分区空间并没有释放。

        执行lsof | grep delete可以看到刚刚删除的文件因为被正在运行的进程调用所以并没有释放磁盘空间。并且业务实时性较高,不能重启进程释放文件。

linux删除了业务进程正在使用的文件,又不能停止进程,如何释放文件占用的磁盘空间_第1张图片

        记录调用文件的进程pid,进入/proc/pid/fd

        ll | grep delete可以看到未释放的文件链接,前面的数字是链接文件编号fid,可以通过echo > fid 清空。

linux删除了业务进程正在使用的文件,又不能停止进程,如何释放文件占用的磁盘空间_第2张图片        同样的方式也可以找到被误删的文件内容。

你可能感兴趣的:(linux,linux,运维,服务器)