清理 / 清扫 (clean.sh / node-cleanup.sh)
在磁盘空间不足或需要定期清空日志/临时文件时使用。
容器模式 (2026.05+) 的清理
容器模式下,镜像内部的 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 镜像 garbage collection: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— 回收旧 snapshot 占用的磁盘nodetool cleanup— 移除 token range 变更后不再使用的 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 compaction 尚在等待中。用 nodetool compactionstats 确认进度 |
find /data1/pp-backup -mtime +30 结果为 0 条 | 备份仅存在于最近 30 天内。请调整时间范围(如 -mtime +14) |
5. 延伸阅读
- 备份自动化 + 保留期限:备份 (
backup.sh) - 磁盘诊断:诊断 / 巡检