1panel 面板怎么清理磁盘空间
照着做一遍,你能把 1Panel 面板上被镜像、日志、备份和回收站吃掉的磁盘空间找回来,并且配置成自动清理。
本文以 1Panel v1.10(Linux 服务器)为例,v2 版本菜单名称基本一致,个别入口位置可能略有不同。
第一步:先查清楚空间被谁占了
盲删容易出事,先定位。登录 1Panel 后进入「概览」页面,右上角的磁盘卡片会显示系统盘使用率;点左侧菜单「主机 → 监控」,切到「磁盘」页签可以看到各分区的实时占用曲线。
命令行更直接,用 SSH 连上服务器(或在 1Panel「主机 → 终端」里操作):
df -h # 看哪个挂载点满了
du -sh /opt/1panel/* | sort -rh | head -10
du -sh /var/lib/docker/* 2>/dev/null | sort -rh | head -10
1Panel 默认安装目录是 /opt/1panel,Docker 数据默认在 /var/lib/docker。这两行基本就能看出大头在哪。
第二步:清 Docker 的镜像、容器和构建缓存
1Panel 上的应用(网站、数据库、中间件)几乎都跑在 Docker 里,这是最容易堆垃圾的地方。在面板里点「容器 → 镜像」,勾选没有容器在用的镜像,点上方「删除」;「容器 → 容器」里把已停止的旧容器删掉;「存储卷」里删掉确认无用的卷。
命令行方式更彻底:
docker system df # 先看镜像/容器/缓存各占多少
docker image prune -a # 删除所有未被容器使用的镜像
docker builder prune -f # 清构建缓存
docker container prune -f # 清已停止的容器
注意:
docker system prune -a --volumes会连带删除未被使用的数据卷,数据库数据可能就在里面,不要随手加--volumes。删除前确认该镜像/卷没有被生产应用依赖。
第三步:限制并清空容器日志
容器日志默认不限大小,跑几个月能吃掉几十 GB。先看大小:
du -sh /var/lib/docker/containers/*/*-json.log | sort -rh | head
临时清空(不重启容器,安全):
truncate -s 0 /var/lib/docker/containers/*/*-json.log
治本的做法是限制日志上限,编辑 /etc/docker/daemon.json 写入:
{"log-driver":"json-file","log-opts":{"max-size":"50m","max-file":"3"}}
保存后执行 systemctl restart docker。
注意:重启 Docker 会重启所有容器,业务高峰期别做,建议先在 1Panel「计划任务」里加个停机窗口提示,或改用 1Panel「容器 → 编排」给单个容器加 log-opts。
第四步:清 1Panel 自己的日志、备份和回收站
在「主机 → 文件」里进入 /opt/1panel,重点看这几个目录:
/opt/1panel/log:面板运行日志,可直接清空内容;/opt/1panel/www/sites/你的域名/log/:网站 access.log、error.log,长期不轮转会非常大;/opt/1panel/backup:本地备份文件,同目录下的旧备份按需删除;- 回收站:在「主机 → 文件」页面右上角有「回收站」入口,清空它;对应文件一般堆在安装目录的 trash 目录下,
du结果里能看到就一并处理。
清理网站日志示例(删除 7 天前的日志):
find /opt/1panel/www/sites -name "*.log" -mtime +7 -delete
注意:数据库的 binlog、慢查询日志不要直接删文件,应在 1Panel「数据库」里点对应数据库的「配置」调整过期时间,或先做一次完整备份再清理。
第五步:收尾清系统日志和包缓存
journalctl --disk-usage # 看系统日志占用
journalctl --vacuum-size=200M # 只保留最近 200M
apt clean # Debian/Ubuntu
yum clean all # CentOS/RHEL
rm -rf /tmp/* # 临时文件
第六步:设置成自动清理
打开「计划任务 → 创建任务」,任务类型选 Shell 脚本,执行周期设为每天凌晨 3 点,脚本内容:
docker system prune -f
find /opt/1panel/www/sites -name "*.log" -mtime +7 -delete
journalctl --vacuum-time=7d
部分版本的 1Panel 计划任务里自带「清理日志」类型,可直接选择清理系统日志、网站日志、容器日志,用内置的更省事。备份类任务记得在创建时设置「保留份数」,避免备份越攒越多把盘撑满。
小结
- 先
df -h+du -sh定位,再动手删; - Docker 镜像、容器、构建缓存是最大头,用
docker image prune -a、docker builder prune -f; - 容器日志要先
truncate -s 0清空,再在 daemon.json 里限制 max-size; - 1Panel 的
log、www/sites/*/log、backup、回收站四处必查; - 系统日志用
journalctl --vacuum-size收口; - 最后全部写进「计划任务」,以后自动跑。
原文链接:https://www.gj0.com/thread-863.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。