Ubuntu 架构磁盘清理的手段

news/2025/12/8 19:42:16/文章来源:https://www.cnblogs.com/yangykaifa/p/19323425

目录

  • 一、清理前的准备
  • 二、快速安全清理
  • 三、 深度清理
  • 四、/snap、/swapfile、/usr 和 /var 文件
    • 4.1 `/snap` - Snap 软件包容器
    • 4.2 `/swapfile` - 交换文件
    • 4.3 `/usr` - Unix System Resources
    • 4.4 `/var` - Variable Data
  • 五、操作指南

当Ubuntu系统磁盘空间告急时,可以通过清理一些特定文件和目录来快速释放空间。

清理类别具体方法主要命令或操作潜在释放空间 & 说明
快速安全清理1. 卸载无用软件包
2. 清理APT缓存
3. 清理缩略图缓存
1. sudo apt autoremove
2. sudo apt clean
3. rm -rf ~/.cache/thumbnails/*
适合日常清理,操作简单且风险低
深度清理1. 清理系统日志
2. 删除旧内核
3. 清理Snap缓存
1. sudo journalctl --vacuum-time=3d
2. sudo apt purge linux-image-旧内核版本号
3. sudo rm -rf /var/lib/snapd/cache/*
释放空间显著,但需要一定的操作技巧,需谨慎
可视化管理1. 查找大文件
2. 使用图形化工具
1. sudo du -sh /*
2. 使用ncduStacer
定位准确,可以直观地找到并删除占用空间最大的文件或目录。

一、清理前的准备

在开始清理前,建议先检查一下磁盘空间的使用情况,做到心中有数。

  • 查看磁盘整体使用情况

    df -h

    这个命令可以确定是哪个分区(比如 //home)空间紧张。
    在这里插入图片描述

  • 定位大目录
    进入根目录或家目录,使用以下命令查看各个子目录的大小:

    sudo du -sh /*

    这能快速找到占用空间最大的目录。
    在这里插入图片描述

二、快速安全清理

这几项操作非常安全,可以定期执行。

  1. 卸载无用软件包sudo apt autoremove
    这个命令会自动删除那些之前作为依赖被安装,但现在不再被任何程序使用的软件包。

  2. 清理APT缓存sudo apt clean
    系统会将下载的所有软件包(.deb文件)缓存在 /var/cache/apt/archives/ 目录中。这个命令会清空整个缓存,释放可观的空间。如果只想删除过时的软件包,可以使用 sudo apt autoclean

  3. 清理缩略图缓存rm -rf ~/.cache/thumbnails/*
    这个命令会删除用户家目录下的缩略图缓存。这些是预览图片时自动生成的,删除后再次浏览时系统会重新创建,所以可以安全清理。

三、 深度清理

以下操作可以释放更多空间,但需要额外小心。

  1. 清理系统日志
    使用 journalctl 命令可以管理系统的日志。以下命令可以删除3天前的所有日志:

    #清理所有早于3天的日志
    sudo journalctl --vacuum-time=3d
    #或限制日志系统占用的最大磁盘空间
    sudo journalctl --vacuum-size=100M
    #也可以使用 logrotate 工具管理或手动删除旧的日志文件(如 *.log.1, *.gz)
  2. 删除旧内核
    注意:这是一个高风险操作,务必确保至少保留一个当前可用的内核版本,切勿删除当前正在运行的内核。

    • 首先,查看已安装的所有内核:
      dpkg --list | grep linux-image
    • 使用 uname -r 查看当前正在使用的内核版本。
    • 然后,使用 sudo apt purge linux-image-版本号 来删除那些旧的、不再使用的内核镜像。建议保留最新的1-2个备用内核即可。
      在这里插入图片描述
  3. 清理Snap缓存
    如果使用Snap软件包,可以清理其缓存:

    sudo rm -rf /var/lib/snapd/cache/*

    此外,还可以使用 flatpak uninstall --unused 清理未使用的Flatpak运行时。

四、/snap、/swapfile、/usr 和 /var 文件

目录/文件核心作用是否可以直接删除?清理/处理建议
/snapSnap软件包的安装目录、核心运行时。绝对不能直接删除!可以卸载不用的Snap应用,或清理其缓存。
/swapfile虚拟内存/交换文件,作为物理内存的扩展。绝对不能直接删除!可以调整其大小或禁用(需确保内存充足)。
/usr系统核心资源库,包含用户安装的应用程序、库文件、文档等。绝对不能直接删除!几乎不能手动清理,依赖包管理器(如apt)。
/var可变数据,如日志、缓存、数据库、邮件等。不能直接删除整个目录!是清理的重点区域,可以有选择地清理其子目录(如缓存、旧日志)。

4.1 /snap - Snap 软件包容器

4.2 /swapfile - 交换文件

  • 作用:在物理内存(RAM)不足时,系统会将内存中不常用的数据暂时写入到交换文件(Swap)中,从而为更需要内存的程序腾出空间。它对于系统的稳定性和休眠(Hibernate)功能至关重要。
  • 为什么不能直接删除
    • 直接删除 swapfile 可能会导致系统在内存压力大时崩溃、卡死或出现不可预知的行为。
    • 如果系统启用了休眠功能,删除交换文件将使休眠失效。
  • 如何安全处理
    • 调整大小:如果交换文件太大,并且确信内存充足(例如,16GB以上内存且不休眠),可以先创建一个新的、更小的交换文件,然后再删除旧的。这是一个安全的过程,不是简单的 rm 命令。
    • 禁用交换文件:同样,这是一个安全的配置过程,而不是直接删除文件。可以使用 sudo swapoff /swapfile 然后删除,但通常不建议完全禁用。

4.3 /usr - Unix System Resources

  • 作用:这是系统的“软件库”,存放了所有用户安装的应用程序、系统的核心工具、库文件、头文件、共享的只读数据等。可以把它理解为 Windows 下的 C:\Program FilesC:\Windows\System32 的结合体。
  • 为什么不能直接删除
    • 删除 /usr 等于摧毁了整个系统的软件生态,系统将立即瘫痪,无法启动任何非内置命令的程序。
    • 它的内容完全由包管理器(如 aptdpkg)管理,手动删除会破坏依赖关系。
  • 如何安全清理
    • 几乎无法手动清理。唯一安全的方式是使用包管理器:
      # 删除不需要的软件包
      sudo apt autoremove --purge
      # 查找并手动卸载不常用的大型软件
      apt list --installed

4.4 /var - Variable Data

  • 作用:存放系统运行过程中经常变化的可变数据。这是磁盘清理中最值得关注的目录
  • 为什么不能直接删除整个目录:因为它包含了重要数据,如数据库(MySQL/PostgreSQL)、邮件、网站数据、Docker 镜像等。删除整个目录会导致服务崩溃、数据丢失。
  • 如何安全清理(重点!)
    • /var/cache/apt/archives/APT 软件包缓存目录。这是清理的首选目标。
      # 清空所有已下载的 .deb 软件包(最彻底)
      sudo apt clean
      # 或只删除过时的软件包(更安全)
      sudo apt autoclean
    • /var/log/系统日志目录。日志文件会随时间增长。
      # 清理所有早于3天的日志
      sudo journalctl --vacuum-time=3d
      # 或限制日志系统占用的最大磁盘空间
      sudo journalctl --vacuum-size=100M
      # 也可以使用 logrotate 工具管理或手动删除旧的日志文件(如 *.log.1, *.gz)
    • /var/lib/snapd/cache/:如前所述,Snap 的缓存目录。
    • /var/tmp/:临时文件目录,但这里的文件通常会被保留更长时间。可以检查并删除不必要的文件。

五、操作指南

当 Ubuntu 磁盘空间用完时,请按以下顺序安全高效地清理:

  1. 第一优先级(安全快捷)

    • sudo apt autoremove (卸载无用依赖)
    • sudo apt clean (清空APT缓存,在 /var/cache/apt/archives/
    • rm -rf ~/.cache/thumbnails/* (清理用户缩略图缓存)
  2. 第二优先级(深度清理 /var

    • sudo journalctl --vacuum-time=3d (清理系统日志)
    • 检查并清理 /var/lib/snapd/cache/
  3. 第三优先级(应用级别)

    • 使用 snap listsudo snap remove 卸载不用的 Snap 应用。
    • 使用 apt list --installed 查找并卸载不常用的大型软件。

注意:在 Linux 系统里,永远不要直接删除不完全理解其作用的系统级目录。总是优先使用系统提供的包管理工具(apt, snap)或专用命令(journalctl)来进行清理。

清理日志
在这里插入图片描述
删除日志
在这里插入图片描述
查看磁盘使用情况
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/993455.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

西电2025硕士网课——人工智能安全与伦理练习答案

西电2025年研究生网课人工智能安全与伦理(北航雨课堂) 答案参考于https://github.com/LazzyXP/AI-Security-and-Ethics-BeiHang-Univer...,修改了一部分错误的答案第一章-AI安全与伦理概述AI 解释生成系统的手段包括…

高级语程序设计第八次作业

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx/ 这个作业要求在哪里:https://edu.cnblogs.com/campus/fzu/gjyycx/homework/15590 学号:102500302 姓名:陈婧妍 编写并运行书本第11章11.13编程练…

2026上海办公室装修实力强的公司推荐三家:资质与案例双标杆指南

2026上海办公室装修实力强的公司推荐三家:资质与案例双标杆指南在上海选择办公室装修实力强的公司,核心看 “资质硬实力、场景适配深度、交付履约率” 三大核心维度。结合《上海市公装服务质量标准(2025 版)》及行…

枚举

1.认识枚举2.应用场景3.例子

cs61a-36链表的练习

在练习之前先创建链表类如图所示 这个tolinked 函数的作用是把python中的可迭代对象转化为链表 练习1:def split(L) ‘’‘返回(mid,last,length) 测试实例如下split(tolinked([1,2,3,4,5])) (Link(3,Link(4,Link…

数据库操控与数据管理——Rust 与 SQLite 的集成

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

20232315 2025-2026-1 《网络与系统攻防技术》实验八实验报告

20232315 2025-2026-1 《网络与系统攻防技术》实验八实验报告20232315 2025-2026-1 《网络与系统攻防技术》实验八实验报告 目录一、实验基本信息二、实验内容三、实验要求四、实验过程4.1 4.2 4.3 4.4 4.5 五、回答问…

3分钟搞定,CI/CD工具Arbess安装和配置 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Ring智能可视门铃调试代码漏洞致远程代码执行

本文详细分析了CVE-2025-64983漏洞。该漏洞存在于SwitchBot智能可视门铃旧版固件中,由于遗留了活跃的调试代码,攻击者可通过Telnet连接并获取设备访问权限,导致远程代码执行风险。CVE-2025-64983 - Ring智能可视门铃…

认识设计模式——单例模式 - 指南

认识设计模式——单例模式 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&q…

完美的盆栽配土

营养土+10%园土 营养土中不含钙镁和微量元素,园土正好富含钙镁和微量元素。这样就不必使用带TE的肥料,也不必额外补钙镁,能省不少钱,也省了不少事,配肥料的时候不用加这个加那个的。 按照植物体内的元素含量,植物…

Anthropic API Key

Anthropic API Keyagent1.ts:import {createAgent} from langchain; import dotenv/configconst agent = createAgent({model: claude-sonnet-4-5-20250929} );const response = await agent.invoke({messages: [{role…

应用文档抽取技术,赋予RPA理解和处理复杂现实世界信息的能力

如果将RPA机器人比作一位不知疲倦的“数字员工”,那么它过往的工作大多依赖清晰的指令和固定的路径——就像在规划好的格子里填色。然而,现实业务中充满了格式各异、内容复杂的“不规则拼图”,如PDF合同、扫描发票等…

Day57(27)-F:\vs_ai_work\vue-tlias-management

ElementPlusTlias智能学习辅助系统修改密码 | 退出登录​ ​ ​ ​ ​ ​ ​ ​ 首页 ​ ​ ​ …

完美的园艺配土

营养土+10%园土 营养土中不含钙镁和微量元素,园土正好富含钙镁和微量元素。这样就不必使用带TE的肥料,也不必额外补钙镁,能省不少钱。 按照植物体内的元素含量,植物对大量元素的需求量是这样的:10x氮:10x钾:5x钙:…

深入解析:在百度seo快速收录要求是什么 有哪些

深入解析:在百度seo快速收录要求是什么 有哪些pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

深入解析:在百度seo快速收录要求是什么 有哪些

深入解析:在百度seo快速收录要求是什么 有哪些pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

匿名内部类

用途:匿名内部类通常作为参数传给的方法例如:点击查看代码 public interface Inter {int abc(int a, int b); }public class Application {public static void main(String[] args) {//new 出来的是接口的实现类对象…

腾讯新闻APP的消息推送Push架构技术重构实践

腾讯新闻APP的消息推送Push架构技术重构实践本文主要分享的是腾讯技术团队近年来对腾讯新闻消息推送PUSH系统做的架构优化和技术实践。本文由腾讯技术团队颜勇分享,原题“腾讯新闻PUSH架构升级之路”,有修订和重新排…

2025 成都人工智能培训排名 TOP3

随着成都国家人工智能创新应用先导区建设提速,本地集聚超 600 家 AI 企业,机器学习工程师、NLP 专家等岗位月薪中位数突破 1.5 万元,较传统 IT 岗位溢价 30% 以上。但培训市场信息混杂,“通用课程水土不服”“实战…