只读:不删不改任何已有文件,不连数据库;du / find 低优先级运行。
curl -fsSLO https://xvuln.com/diskcheck/diskcheck.sh sudo bash diskcheck.sh
不通外网的机器:在别处下载 diskcheck.sh 再拷过去。
结果在 /tmp/diskcheck_<IP>_<时间>.tar.gz,通常几十 KB 到几 MB。/tmp 没空间时自动改存 /dev/shm。
scp root@服务器:/tmp/diskcheck_*.tar.gz .
tar.gz 或解压后的目录都行,也可以直接拖进来。没有结果包可以先点「看示例」。
脚本 SHA-256:4b2d5d3407995d8a7a555941d424ba4a03fdfeec1af2db1ea65e728265a08317
把 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。
脚本唯一的写入是在输出目录建临时目录和结果包,结束时删掉自己建的临时目录。页面给出的命令由采集结果拼出,执行前请先核对;本工具自己不执行任何清理。