当前位置: 首页 > ds >正文

Ubuntu 磁盘空间占用清理(宝塔)

目录

  • 前言
  • 1. 基本知识
  • 2. 实战

前言

🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF

爬虫神器,无代码爬取,就来:bright.cn

本身自搭建了一个宝塔,突然一下子多了好些空间,对此需要进行额外小心的清理

在这里插入图片描述

1. 基本知识

先补充一些基本知识命令

确认哪个大目录占用空间:

  • 在 / 下跑 du 命令,比如:sudo du -h --max-depth=1 /
    -h:人类可读(G/M单位)
    --max-depth=1:只看一层,不要递归太深
    /:从根目录开始

找不到明显异常,也可以直接搜索大文件:sudo find / -type f -size +500M -exec ls -lh {} \; | sort -k5 -rh | head -n 20

截图如下:

在这里插入图片描述

上述这几个命令着重讲解下,别乱删除(最好删除一些log日志文件之类,不清楚的文件不要乱删除)

文件 大小是否可以清理说明
/proc/kcore 128T(假的)❌不能动这是虚拟内存文件,内核自己用的,看着大不用管,不能删
/www/wwwlogs/java/springboot/eng-1.log3.9G✅可以清理 springboot 应用日志,太大了,可以清空或者按需保留
/www/server/data/ruoyi@002dvue@002dpro/infra_api_access_log.ibd592M🟡谨慎处理 MySQL数据库表文件,最好别直接删,除非确定是无用表

对应清空日志文件可以使用:> /www/wwwlogs/java/springboot/eng-1.log

再者也可查询各个相关的日志记录:

du -sh /www/wwwlogs/*
du -sh /var/log/*# 如果服务器装了 mysql,也要看看:
sudo du -sh /var/lib/mysql/*# 查询网址备份文件
du -sh /www/backup/*

2. 实战

上述内容根据实战总结,有时候一些空间可以不必清理,可能为 缓存、假死文件需要重启才可

比如如下情况:
sudo du -h --max-depth=1 / 总共加起来只有 53G 左右
在这里插入图片描述

但是 df -h 看到 / 分区已经用了 269G

在这里插入图片描述
重启各个应用或者 重启服务是最好的


这种情况,建议重启下Java的各个应用或者网站应用:ps -ef | grep java

在这里插入图片描述

发现有两个Java进程,但是查询端口号的时候发现挂载的进程号是最新的日期,既可以把旧的进程号kill即可:ss -tnlp | grep 48080

在这里插入图片描述


也可能是删除但忍让占用的文件,被程序正在占用文件描述符(FD)

# 直接执行
lsof | grep deleted#也可通过上述执行的 sudo find / -type f -size +500M -exec ls -lh {} \; | sort -k5 -rh | head -n 20
# 特意找到对应文件大的名字:
lsof | grep '/.Recycle_bin/' | grep deleted

截图如下:

在这里插入图片描述

可以对应进行kill -9 进程号,但保守一些还是重启


这也更好的说明为啥df 和 dh都不大一样

比如查看:lsof | grep deleted | awk '{print $7/1024/1024 " MB", $9}' | sort -rn | head -n 20

发现最大的文件占用200G
在这里插入图片描述

但是到对应的文件缺没有显示,显示为空!这种情况一般重启是最好用,直接释放!

在这里插入图片描述

Linux有个机制:
文件在被删除以后,只要还有进程持有,物理空间不会真正释放。
必须要等进程彻底关闭文件描述符,操作系统才回收

http://www.xdnf.cn/news/2510.html

相关文章:

  • 创建一个springboot的项目-简洁步骤
  • 利用 Python 爬虫按关键字搜索 1688 商品详情:实战指南
  • 用户行为检测技术解析:从请求头到流量模式的对抗与防御
  • 大模型、知识图谱和强化学习三者的结合,可以形成哪些研究方向?
  • Java安全之cc链学习集合
  • 【C语言】fprintf与perror对比,两种报错提示的方法
  • 在Linux中,使用IO标准库进行读写操作。
  • Kubernetes学习笔记-环境变量的使用
  • 重构数字信任基石:Java 24 网络安全特性的全维度革新与未来防御体系构建
  • 30、不是说字符串是不可变的吗,string s=“abc“;s=“123“不就是变了吗?
  • HNUST湖南科技大学-嵌入式考试选择题题库(109道纠正详解版)
  • 电镀废水资源化利用的工艺介绍
  • 备份服务器,备份服务器数据有哪些方法可以实现?
  • Spark学习全总结
  • 多用户商城系统的三种形式:综合性、垂直型、社交型
  • MPI Code for Ghost Data Exchange in 3D Domain Decomposition with Multi-GPUs
  • ALTER TABLE 删除DROP表列的报错: 因为有一个或多个对象访问此列
  • 多通道示波器测量系统的工程实践与技术演进
  • Flink 时态维度表 Join 与缓存机制实战
  • (done) 吴恩达版提示词工程 8. 聊天机器人 (聊天格式设计,上下文内容,点餐机器人)
  • ppt流程图怎么?ppt流程图模板大全
  • 【C语言操作符详解(一)】--进制转换,原反补码,移位操作符,位操作符,逗号表达式,下标访问及函数调用操作符
  • 自动驾驶(ADAS)领域常用数据集介绍
  • 学习insightface 的人脸识别
  • 企业如何构建一个全面的Web安全防护体系
  • PDF处理控件Aspose.PDF指南:如何使用 C# 在 PDF 中搜索
  • STM32 定时器TIM
  • 重塑编程体验边界:明基RD280U显示器深度体验
  • redis常用集合操作命令
  • C#如何正确的停止一个多线程Task?CancellationTokenSource 的用法。