xvuln.com / diskcheck

Linux 磁盘空间排查

根分区满了,先跑一个只读采集脚本,再把结果拖进本页。页面在浏览器里解析,按「可直接清理 / 需确认 / 不能动」列出每一项占用的大小、判断依据和处理命令。

1. 在服务器上运行采集脚本

只读:不删不改任何已有文件,不连数据库;du / find 低优先级运行。

curl -fsSLO https://xvuln.com/diskcheck/diskcheck.sh
sudo bash diskcheck.sh

不通外网的机器:在别处下载 diskcheck.sh 再拷过去。

2. 取回结果包

结果在 /tmp/diskcheck_<IP>_<时间>.tar.gz,通常几十 KB 到几 MB。/tmp 没空间时自动改存 /dev/shm。

scp root@服务器:/tmp/diskcheck_*.tar.gz .
3. 在下面选择结果包

tar.gz 或解压后的目录都行,也可以直接拖进来。没有结果包可以先点「看示例」。

脚本 SHA-256:4b2d5d3407995d8a7a555941d424ba4a03fdfeec1af2db1ea65e728265a08317

结果不会离开你的电脑。本页没有任何上传接口,内容安全策略(CSP)禁止页面发起网络请求,解析全部在浏览器内存里完成。可以断网使用,也可以「另存为」本页离线用。

把 diskcheck_*.tar.gz 或解压出来的目录拖到这里

脚本参数与采集内容

参数说明
-o 目录结果包存放目录,默认 /tmp
-d 深度du 统计深度,默认 6
-m MB文件清单收录阈值,默认 1MB;文件特别多的机器可以调大
-t 秒du / find 单步超时,默认 1800

采集项:df(容量与 inode)、lsblk、挂载表、fstab、LVM、swap;一次 du -xk --max-depth=6 /;大文件、core、hprof 清单;已删除仍被占用的文件(/proc/*/fd 与 lsof +L1);journald、yum/dnf/apt 缓存、/var/log 与 logrotate、cron 与 MAILTO、postfix/sendmail 邮件队列;检测到才采的 MySQL、PostgreSQL、MongoDB、Redis、Oracle、达梦、人大金仓、Elasticsearch、Docker 模块(只读配置文件和目录大小,不连库);自动找出最大的几个目录按扩展名、文件名模式和年龄下钻。配置、命令行、crontab 里的口令类参数落盘前打码。适用 RHEL/CentOS 7 及以上、银河麒麟、统信、Ubuntu/Debian。

脚本唯一的写入是在输出目录建临时目录和结果包,结束时删掉自己建的临时目录。页面给出的命令由采集结果拼出,执行前请先核对;本工具自己不执行任何清理。