百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Linux 磁盘满了不用慌,这几个命令在手不断梭哈就好

nanshan 2024-12-26 15:44 14 浏览 0 评论

在使用 Linux 系统时,磁盘空间耗尽是一个常见的难题。磁盘满了不仅会导致系统运行缓慢,还可能影响服务的稳定性,甚至造成系统崩溃。许多 Linux 用户可能在面临磁盘空间告急时感到手足无措,但其实只需要掌握几个基本命令,你就能迅速找到问题所在,并采取有效的解决措施。

本文将详细介绍如何使用一些 Linux 常用命令来排查和解决磁盘空间不足的问题。通过这些命令,你将能够高效地管理磁盘空间,避免磁盘溢出带来的麻烦。

当你发现磁盘满了,首先要做的就是了解磁盘的使用情况。这一步骤至关重要,它帮助你找到哪些文件占用了最多的空间,进而决定下一步的操作。

查询磁盘空间

1、df 命令

df 命令用于查看文件系统的磁盘空间使用情况。它的输出包括了每个挂载点的磁盘总容量、已用空间、可用空间以及使用百分比等信息。

Bash
df -h
  • -h 选项表示以人类可读的格式显示(例如,MB,GB)。

输出示例:

从输出中,你可以看到每个分区的磁盘空间使用情况,Use% 列显示了每个挂载点的空间使用百分比。当某个挂载点的使用率接近 100% 时,说明磁盘即将满了,需要采取措施。

2、du 命令

如果 df 命令告诉你磁盘已经满了,接下来你需要找出哪些目录或文件占用了大量的磁盘空间。这时,du 命令会派上用场。du(Disk Usage)命令可以显示指定目录及其子目录的磁盘使用情况。

使用示例:

Bash
du -sh /*
  • -s 选项表示仅显示每个目录的总大小,而不是递归列出每个文件和子目录。
  • -h 选项表示以人类可读的格式显示大小。

输出示例:

从输出中,你可以看到每个顶级目录的磁盘使用情况。接下来,可以进入占用空间较大的目录进行更深层次的分析。

3、ncdu 命令

ncdu(NCurses Disk Usage)命令是一个类似于 du 的工具,但它提供了一个交互式界面,便于用户快速查看并管理文件系统的磁盘使用情况。

安装:

sudo apt install ncdu

使用示例:

ncdu /var

通过 ncdu,你可以轻松地浏览目录,查看每个文件夹占用的空间,并且能够直接在界面中删除不需要的文件,帮助你快速释放空间。

找出大文件并删除

磁盘空间不足的一个常见原因是某些大文件或临时文件没有被及时清理。通过以下命令,你可以快速找到系统中的大文件并删除它们。

1、使用 find 查找大文件

find 命令非常强大,它可以根据文件大小、修改时间等多种条件查找文件。我们可以使用 find 查找系统中占用空间较大的文件。

使用示例:

find / -type f -size +100M
  • -type f 表示查找文件。
  • -size +100M 表示查找大于 100MB 的文件。

如果你找到了不再需要的大文件,可以使用 rm 命令删除它们:

rm /path/to/large/file

2、使用 lsof 查找占用空间的文件

有时,磁盘满了是由于某个进程占用了大量的空间。你可以使用 lsof(List Open Files)命令查看哪些文件正在被进程占用。

使用示例:

lsof | grep deleted

这个命令会列出所有已删除但仍然被某个进程占用的文件。即使这些文件已经被删除,它们仍然会占用磁盘空间,直到占用它们的进程结束。

如果你发现有进程仍在占用这些已删除的文件,可以通过重启进程来释放磁盘空间。

清理临时文件和日志文件

Linux 系统会定期生成许多临时文件和日志文件,它们如果没有及时清理,也会占用大量的磁盘空间。以下是一些常见的清理方法。

1、清理 apt 缓存

在基于 Debian 系统(如 Ubuntu)的 Linux 发行版中,apt 命令会将已安装软件包的安装包保存在缓存中。随着时间的推移,这些缓存可能会占用大量空间。

清理缓存:

sudo apt-get clean

这条命令会删除所有已下载的 .deb 安装包,释放磁盘空间。

2、清理日志文件

Linux 系统会将系统日志存储在 /var/log 目录下,这些日志文件可能会随着时间的推移占用大量的空间。你可以使用以下命令清理日志文件。

查看日志文件:

du -sh /var/log/*

删除过期的日志文件:

sudo rm /var/log/*.log.*

清空日志文件内容:

如果你不想删除日志文件,而是想清空它们的内容,可以使用 truncate 命令。

sudo truncate -s 0 /var/log/syslog

定期监控磁盘使用情况

磁盘空间的监控是一项持续的工作。为了避免磁盘空间满的情况再次发生,可以设置定期检查磁盘空间的任务。

使用 cron 定期执行磁盘检查

你可以设置一个 cron 任务来定期运行磁盘检查命令,及时发现并处理磁盘空间不足的问题。

编辑 cron 配置:

crontab -e

添加定期执行磁盘检查的任务:

0 2 * * * df -h | mail -s "Disk Space Alert" admin@example.com

这个例子表示每天凌晨 2 点执行 df -h 命令,并将输出结果通过邮件发送给系统管理员。

避免磁盘空间耗尽的最佳实践

除了掌握如何排查和解决磁盘空间不足的问题外,预防也是非常重要的。以下是一些避免磁盘空间耗尽的最佳实践:

  1. 定期清理临时文件:定期清理 /tmp/var/tmp 以及浏览器缓存等临时文件夹。
  2. 监控日志文件大小:定期检查并清理日志文件,避免它们占满整个磁盘。
  3. 限制文件上传大小:对于支持文件上传的服务器,可以通过配置限制单个文件的最大上传大小,避免大文件占用过多空间。
  4. 使用自动清理工具:例如,logrotate 可以帮助自动旋转和清理日志文件,防止它们无限增长。

相关推荐

0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)

文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...

ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes

为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...

生产环境starrocks 3.1存算一体集群部署

集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...

在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...

国产深度(deepin)操作系统优化指南

1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...

postgresql-15.4 多节点主从(读写分离)

1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...

Docker 容器 Java 服务内存与 GC 优化实施方案

一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Elasticsearch性能调优(5):服务器配置选择

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...

Es如何落地

一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...

针对Linux内存管理知识学习总结

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...

MySQL进阶之性能优化

概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...

Linux Cgroups(Control Groups)原理

LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...

linux 常用性能优化参数及理解

1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...

如何在 Linux 中使用 Sysctl 命令?

sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: