今天同事告诉我,有台机器磁盘报警 占用100%,然后看到apollo一直在打印日志,但apollo正常情况下不能直接重启, 删除日志释放磁盘空间失效。
这种问题,原因是文件被删除,但是还被进程占用。怎么解决这个问题呢
1、lsof | grep deleted #找到未能删除掉的文件,确定占用的进程号;截图示例,第2个其实就是进程号,但由于被我处理过,这里简单示例
2、ll /proc/$PID/fd |grep deleted #找到相应文件句柄;
举例:ll /proc/26400/fd |grep deleted , 截图的数字171是 FD_NUM
3、echo > /proc/$PID/fd/$FD_NUM #清除文件内容
举例: echo > /proc/26400/fd/171
执行后, 通过 df -lh 查看磁盘空间正常。
随心记录,做个备份