排查Linux根目录文件总占用小,但磁盘空间使用率高的问题
排查Linux根目录文件总占用小,但磁盘空间使用率高的问题
已删除的文件,如果有相关进程仍在run,就不会自动释放,需要手动重启下。
手搓了个脚本,排查有哪些文件,需要重启哪些进程。
在root下创建showNoFreeDeletedFiles.sh
文件,并执行,就能看到了
echo '==================== deleted files ===================='
# 提取每个进程的已删除文件信息(这里的$8在gpt说应该是$7,但我的系统用$8才对的上)
deleted_files=$(lsof | grep deleted | awk '{print $2 " | " $8 / 1024 / 1024 " MB | " $10}')
# 输出已删除文件信息
echo "$deleted_files"
echo '==================== pid info ===================='
# 遍历每个唯一的 PID
for pid in $(lsof | grep deleted | awk '{print $2}' | sort -u); do
echo "PID: $pid"
# 统计该 PID 的已删除文件总大小
total_size=$(echo "$deleted_files" | grep "^$pid" | awk '{sum += $3} END {print sum}')
# 输出进程信息
ps -ef | grep "$pid" | grep -v grep
echo "Total size of deleted files for PID $pid: $total_size MB"
echo "-------------------------"
done
echo '==================== end ===================='
结果如下(ps:这是我清理后执行的,所以很少),重启相关的应用就可以了。
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
安浩阳!
喜欢就支持一下吧