工作中经常遇到Linux系统磁盘空间不足,但是删除后较大的日志文件后,发现磁盘空间仍没有被释放。
解决思路
1、工作发现磁盘空间不足;
2、找到占用磁盘空间较大的文件进行删除;
3、删除文件后,查看磁盘空间使用情况,未释放;
4、一种方法是找到相应delete进程,杀掉即可,问题解决。另一种方法是找到对应的文件句柄,清空文件。
具体步骤
1.使用df -h查看磁盘使用率。
2.进入根目录 并查看根目录实际占用文件大小du -h -x --max-depth=1,发现根目录空间和实际占用文件大小不一致,另外占用空间的文件找不到。
3.怀疑有已经删除文件但占用空间未释放,通过sudo lsof /目录 | grep deleted查看当前系统句柄对已删除文件未释放情况。
4.一种方法是通过kill 进程号然后重启服务来解决,另一种方法是不杀进程清理的方式,通过ls -l /proc/PID/fd/* | grep 文件名,找到相应文件句柄,然后清空文件echo > /proc/PID/fd/1。