Linux磁盘空间释放

本文介绍了在Linux系统中遇到磁盘空间满导致服务不可用的问题时,如何进行磁盘空间释放。通过分析df与du结果不一致的原因,讨论了在进程占用文件时,删除文件并未立即释放空间的情况,并提供了实践操作,包括使用du, df, lsof等命令进行问题排查和解决。同时,探讨了如何查看和结束占用文件的进程,以及理解Linux文件描述符的重要性。" 84803810,8138348,搭建arm-linux-gcc交叉编译环境指南,"['嵌入式开发', 'Linux', '交叉编译工具链']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

在近期的实际工作中,遇到过几次因为磁盘空间满而导致服务不可用的情况,所以免不了要对系统进行清理。 在最开始的几次清理过程中,通过删除一些大日志文件可以得到立竿见影的效果,所以就没怎么注意;但是在最近一次的清理过程中,发现根目录的使用率已经到达百分百,但是并没有在根目录下发现有什么大文件,所以无法仅通过rm -rf ***这种简单粗暴的方式来解决问题。

问题分析

问题描述

说起被删除文件的磁盘空间并未释放问题,还存在一个与之类似的说法:df、du结果不一致,这两个问题在很大程度上指的是一回事:即就是被删除文件在被执行rm命令时,还有其他进程在操作该文件;所以该文件只是被标记为“deleted”,而非立马被删除;除非等到操作该文件的所有进程都结束后该文件才会被删除。

实践

俗话说好记性不如赖笔头,既然知道了原因,那就亲自实践一下,在验证结论正确与否的同时加深记忆也未尝不可。
首先执行命令df -h,可以看到当前机器的根目录的大小为48G,可用空间为35G;
在这里插入图片描述
然后在当前用户目录(/home/yhyr)下新建一个数据文件,为了提升试验的效果,这里生成文件的大小为1G;数据文件生成 命令dd if=/dev/zero of=./data_file bs=1M count=1024;然后分别查看当前目录的文件大小信息du -sh ./*和磁盘的占用情况df -h
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值