整理和清理
当磁盘空间不足或需要定期清理日志/临时文件时使用。
容器模式 (2026.05+) 的清理
容器模式由 image 内部的 logrotate (cronie + /etc/cron.daily/logrotate) 自动清理,按 daily / size>100M /
14天 gzip 进行(覆盖全部 8 个组件日志)。UI 的“临时清理”按钮通过 signal file
(/etc/kopens/host-action.request {"action":"tempClean"}) → host 的 kopens-host-action.path
清空 /data1/pp-temp/* 并重启容器。
Docker 镜像垃圾回收: install.sh 安装的 weekly cron (/etc/cron.weekly/plantpulse-cleanup)
自动清理超过 30 天的 image / dangling layer / 超过 30 天的 journald。
1. clean.sh — 批量删除日志 / 临时文件
$PE_HOME/bin/clean.sh
删除的内容(不影响 DB / 用户数据 — 安全):
server/logs/*(Tomcat)db/logs/*(Cassandra log — sstable 数据保留)mqtt/log/*timeseries/*/log/*cache/log/*node/log/*/tmp/*
/tmp/* 批量删除 — 也会清除其他用户的临时文件clean.sh 也会清空系统整体的 /tmp。ssh 会话 socket / systemd-private / X11 / journal 的临时文件也会一并删除。仅在单独运行的网关机器上使用,否则需谨慎。
2. node-cleanup.sh — 回收 Cassandra 磁盘空间
$PE_HOME/bin/node-cleanup.sh
执行:
nodetool clearsnapshot --all— 回收旧快照的磁盘空间nodetool cleanup— 删除 token 范围变更后未使用的 sstable
通常由 start.sh 在后台自动调用,但在磁盘不足时,可以手动再运行一次。
耗时以分钟计(与 sstable 数量成正比)。会有少量 I/O 负载 — 建议在采集流量空闲的时段执行。
3. 磁盘不足应对(完整流程)
# 1. 무엇이 차지 중?
df -h
du -sh $PE_HOME/*/log/* /data1/* 2>/dev/null | sort -h | tail -20
# 2. 로그 / 임시 파일 정리
$PE_HOME/bin/clean.sh
# 3. Cassandra 디스크 회수
$PE_HOME/bin/node-cleanup.sh
# 4. 오래된 백업 정리 (30 일 이상)
find /data1/pp-backup -maxdepth 1 -type d -mtime +30 -exec rm -rf {} +
# 5. (옵션) Docker 이미지 / 컨테이너 정리
docker system prune -af
# 6. 결과 확인
df -h
4. 常见陷阱
| 症状 | 原因 / 解决方法 |
|---|---|
clean.sh 后 ssh 突然断开 | 删除了 /tmp/* 的 ssh socket — 请用其他会话重新连接 |
node-cleanup.sh 后磁盘空间仍未被回收 | sstable 压缩等待中。通过 nodetool compactionstats 查看进度 |
find /data1/pp-backup -mtime +30 为 0 条 | 备份仅存在最近 30 天内。调整期限(如 -mtime +14 等) |
5. 更多信息
- 备份自动化 + 保留周期: 备份 (
backup.sh) - 磁盘诊断: 诊断 / 巡检