#查看当前目录下各文件夹体积,使用命令:
du -sh *
#然后逐级查找大文件,使用删除命令:
rm -rf foldername
#删除固定日期之前的文件
find logs -type f -mtime +5 -exec rm { } \;
#对于时间相关的参数,有以下补充:
#-amin n
#查找系统中最后N分钟访问的文件
#-atime n
#查找系统中最后n*24小时访问的文件
#-cmin n
#查找系统中最后N分钟被改变文件状态的文件
#-ctime n
#查找系统中最后n*24小时被改变文件状态的文件
#-mmin n
#查找系统中最后N分钟被改变文件数据的文件
#-mtime n
#查找系统中最后n*24小时被改变文件数据的文件#使用 du 排查大文件夹(按占用大小排序)
du -h --max-depth=1 / | sort -hr | head -20
#进一步排查特定目录
du -h --max-depth=1 /var | sort -hr
du -h --max-depth=1 /usr | sort -hr
#查看哪些日志文件大
find /var/log -type f -size +10M
#查找大文件(>500MB)
find / -type f -size +500M -exec ls -lh {} \; | awk '{ print $NF ": " $5 }'
#立即清理系统systemd日志,保留3天
journalctl --vacuum-time=3d
#设置日志保留策略
#编辑 journald 配置文件:
vi /etc/systemd/journald.conf
#找到并修改以下几项(如没有则取消注释并设置):
SystemMaxUse=200M # 总体最大占用空间
SystemKeepFree=100M # 留给系统的保底空间
SystemMaxFileSize=50M # 单个日志文件最大大小
SystemMaxFiles=5 # 日志文件最多保存几个
#保存后,重启 journald 服务生效:
systemctl restart systemd-journald一键执行脚本
# 一键清理
curl -fsSL https://ishere.cn/system-space-optimize.sh \
| sudo bash -s -- --yes
# 查看帮助
curl -fsSL https://ishere.cn/system-space-optimize.sh \
| sudo bash -s -- --help
# 工作内容
#清理:
# • apt 缓存、旧包
# • systemd 日志(默认保留 7 天)
# • /tmp、/var/tmp
# • /root/.cache、/root/.magentic_ui 等
#自动迁移到 /data/system-moved(带软链接):
# • /home/gitlab-runner
# • /var/lib/docker
# • /var/log(默认不开启,需要你显式加参数才会迁移,因为略激进)
#自动检测:
# • 如果目录已经是软链接 → 跳过一键执行脚本(V2,迁移swapfile及限制journal日志)
# 执行默认配置
curl -fsSL https://ishere.cn/optimize-swap-journal.sh | sudo bash默认行为:
- swap 迁移到 /data/swapfile
- swap 大小:8G
- journal 限制:
- 最大占用:200M
- 保留磁盘空余:500M
- 最大保留时长:3day
# 自定义参数示例(推荐)
curl -fsSL https://ishere.cn/optimize-swap-journal.sh | sudo bash -s -- \
--swap-dir /data \
--swap-size-gb 8 \
--swap-file-name swapfile \
--journal-max-use 200M \
--journal-keep-free 500M \
--journal-max-retention 3day支持的参数
| 参数 | 默认值 | 说明 |
|---|---|---|
| –swap-dir | /data | 新 swapfile 存放目录 |
| –swap-size-gb | 8 | swap 大小(GB) |
| –swap-file-name | swapfile | swap 文件名 |
| –journal-max-use | 200M | journal 最大空间占用 |
| –journal-keep-free | 500M | journal 保留磁盘余量 |
| –journal-max-retention | 3day | journal 最长保留时间 |
# 模拟运行(不会修改系统)
curl -fsSL https://ishere.cn/optimize-swap-journal.sh | bash -s -- --dry-run脚本执行完成后可手动检查
swapon --show
journalctl --disk-usage
df -h
cat /etc/fstab一键执行脚本(V3,迁移/var/log至数据盘)
# 正式执行
curl -fsSL https://ishere.cn/optimize-move-log.sh | sudo bash# 预览(dry-run,不改系统)
curl -fsSL https://ishere.cn/optimize-move-log.sh | bash -s -- --dry-run系统健康检查脚本(只读,不操作系统)
curl -fsSL https://ishere.cn/system-disk-health-check.sh | sudo bash专门用来检查:
- 看「系统盘 /」还剩多少空间
- 看 /var、/var/log 谁最肥
- 查有没有 (deleted) 但仍被进程占用 的日志文件(重点是 rsyslog / journald)
- 看 swap 使用率是否过高
- 看 /var/log 是否已经迁移到数据盘(bind mount)
