整理 / クリーンアップ (clean.sh / node-cleanup.sh)
ディスク容量が不足した場合や、定期的にログ/一時ファイルを削除する際に使用します。
コンテナモードでは、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 イメージの 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) - ディスク診断: 診断 / 点検