本身自搭建了一个宝塔,突然一下子多了好些空间,对此需要进行额外小心的清理
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.log | 3.9g | 可以清理 springboot 应用日志,太大了,可以清空或者按需保留 |
/www/server/data/ruoyi@002dvue@002dpro/infra_api_access_log.ibd | 592m | 谨慎处理 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有个机制:
- 文件在被删除以后,只要还有进程持有,物理空间不会真正释放。
- 必须要等进程彻底关闭文件描述符,操作系统才回收
以上就是ubuntu磁盘空间占用清理的方法详解(宝塔)的详细内容,更多关于ubuntu磁盘空间清理的资料请关注代码网其它相关文章!
发表评论