Linux磁盘满了快速排查和清理方法
<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>快速定位磁盘占用原因<ul class="second_class_ul"><li>1. 检查磁盘使用情况</li><li>2. 找出大文件和目录</li><ul class="third_class_ul"><li>(1) 使用 du 查找占用最多的目录</li><li>(2) 使用 find 查找大文件</li></ul><li>3. 检查挂载点问题</li><ul class="third_class_ul"></ul></ul></li><li>清理磁盘空间的方法汇总<ul class="second_class_ul"><li>方法一</li><ul class="third_class_ul"></ul><li>方法二</li><ul class="third_class_ul"></ul><li>方法三</li><ul class="third_class_ul"></ul></ul></li></ul></div><p class="maodian"></p><h2>快速定位磁盘占用原因</h2><p class="maodian"></p><h3>1. 检查磁盘使用情况</h3>
<p>使用 <code>df</code> 命令查看磁盘分区的使用情况:</p>
<div class="dxycode"><pre class="brush:bash;">df -h</pre></div>
<ul><li><strong>参数说明</strong>:
<ul><li><code>-h</code>:以人类可读的格式显示(GB、MB)。</li></ul></li><li><strong>输出示例</strong>:<p>plaintext</p></li></ul>
<div class="dxycode"><pre class="brush:bash;">Filesystem SizeUsed Avail Use% Mounted on
/dev/sda1 50G 45G5G 90% /
/dev/sda2 100G 95G5G 95% /home</pre></div>
<p>如果某个分区(如 <code>/</code> 或 <code>/home</code>)的 <strong>Use%</strong> 达到接近 100%,说明该分区已满。</p>
<p class="maodian"></p><h3>2. 找出大文件和目录</h3>
<p class="maodian"></p><h4>(1) 使用 du 查找占用最多的目录</h4>
<p><code>du</code> 命令用于分析文件和文件夹的磁盘占用情况:</p>
<div class="dxycode"><pre class="brush:bash;">du -h --max-depth=1 /</pre></div>
<ul><li><strong>参数说明</strong>:
<ul><li><code>-h</code>:以人类可读的格式显示。</li><li><code>--max-depth=1</code>:只查看顶级目录的大小。</li></ul></li><li><strong>输出示例</strong>:<p>plaintext</p></li></ul>
<div class="dxycode"><pre class="brush:bash;">5.0G /var
20G /home
15G /usr
1.2G /tmp</pre></div>
<p class="maodian"></p><h4>(2) 使用 find 查找大文件</h4>
<p>查找超过 1GB 的大文件:</p>
<div class="dxycode"><pre class="brush:bash;">find / -type f -size +1G 2>/dev/null</pre></div>
<ul><li><strong>参数说明</strong>:
<ul><li><code>-type f</code>:只查找文件。</li><li><code>-size +1G</code>:查找大于 1GB 的文件。</li><li><code>2>/dev/null</code>:忽略权限不足导致的错误。</li></ul></li></ul>
<p class="maodian"></p><h3>3. 检查挂载点问题</h3>
<p>有时磁盘分区挂载错误可能导致文件写入到了根目录,而不是正确的挂载点:</p>
<ul><li>检查是否有挂载问题:</li></ul>
<div class="dxycode"><pre class="brush:bash;">mount</pre></div>
<ul><li>如果某个挂载点(如 <code>/mnt/data</code>)没有正确挂载,可能会导致根分区被写满。</li><li>解决方法:<ul><li>确认挂载点:</li></ul></li></ul>
<div class="dxycode"><pre class="brush:bash;">df -h</pre></div>
<p>如果未正确挂载,重新挂载分区:</p>
<div class="dxycode"><pre class="brush:bash;">sudo mount /dev/sdX /mnt/data</pre></div>
<p class="maodian"></p><h2>清理磁盘空间的方法汇总</h2>
<p class="maodian"></p><h3>方法一</h3>
<p>步骤一:遇到磁盘空间不足的报错时候,首先使用df -h查看磁盘空间使用情况,如图/home/zhang目录磁盘空间达到100%。</p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250530/2-25053012031YM.png" /></p>
<p>步骤二:进入目录/home/zhang,查找磁盘空间中的大文件,使用命令</p>
<div class="dxycode"><pre class="brush:bash;">du -h --max-depth=1 /</pre></div>
<p>du -sh *查找占用空间大的目录,可以看到tomcat空间占用的空间比较大,通过逐层定位,最后会找到具体的文件</p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250530/2-25053012031UV.png" /></p>
<p>步骤三:除了上面逐层定位的方法,我们也可以直接查找出大文件,使用命令find /home/zhang -size +400M查找出大于400M的文件</p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250530/2-2505301203191B.png" /></p>
<p>步骤四:从上面可以看出,是/home/zhang/tomcat/logs/目录下的日志文件占用空间较大,如果判定日志文件已经无用,直接删除即可,如图,保留最近的日志文件,其余删除,空间释放</p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250530/2-250530120321408.png" /></p>
<p class="maodian"></p><h3>方法二</h3>
<p>步骤一:除了磁盘空间除了文件占用之外,还有一种情况,当磁盘空间满了之后,我们无法查找到大文件,此时可能是文件可能已经被删掉,但有进程依然在使用它。在进程运行期间,Linux 不会释放该文件的存储空间。此时看到磁盘空间仍是100%</p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250530/2-250530120322U4.png" /></p>
<p>步骤二:此时适用命令lsof | lsof | grep deleted 查找到占用的进程,直接停止进程或者kill掉就可以释放空间(注:如果不是生产环境,重启操作系统,空间也会释放)</p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250530/2-250530120323221.png" /></p>
<p class="maodian"></p><h3>方法三</h3>
<p>最后一种情况,就是随着linux系统应用的安装,当初磁盘空间申请过小,磁盘使用达到100%,也没有可以清理的磁盘空间,此时如果其余磁盘挂载点有充足的空间,我们可以通过软连接使用其余磁盘的空间,或者将应用安装到富余的目录空间,此外,现在很多磁盘都使用LVM逻辑卷的方式挂载,增加磁盘后,可以使用<code>动态扩容</code>磁盘空间解决。</p>
<p>以上就是linux服务器磁盘满了怎么办的详细内容,更多相关资料请阅读琼殿技术社区其它文章!</p>
頁:
[1]