정리 / 청소 (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) - 디스크 진단: 진단 / 점검