diff --git a/troubleshooting/250731_로그저장소_SSHFS설정과_템플릿해결책.md b/troubleshooting/250731_로그저장소_SSHFS설정과_템플릿해결책.md index 96eef44..69241bf 100644 --- a/troubleshooting/250731_로그저장소_SSHFS설정과_템플릿해결책.md +++ b/troubleshooting/250731_로그저장소_SSHFS설정과_템플릿해결책.md @@ -88,66 +88,11 @@ sudo chown -R 999:999 /mnt/hdd/logs/51124-server/ ``` - 여전히 디렉토리는 수동 생성 필요 -## 최종 해결책: 템플릿 방식 +## 제안된 해결책 (미구현) -### 1. docker-compose.yml 템플릿화 -```yaml -services: - app: - volumes: - - ${LOG_ROOT:-./logs}/${ROBEING_NAME:-${COMPOSE_PROJECT_NAME}}:/code/logs:rw -``` - -### 2. .env.template 생성 -```bash -# .env.template -LOG_ROOT=/mnt/51123logs -ROBEING_NAME=__ROBEING__ -``` - -### 3. 배포 자동화 스크립트 -```bash -#!/bin/bash -# deploy_robeing.sh rb10508_test -set -e -ROBEING=$1 -LOG_ROOT=/mnt/51123logs - -sudo mkdir -p ${LOG_ROOT}/${ROBEING} -sudo chown 999:docker ${LOG_ROOT}/${ROBEING} - -cp .env.template .env -sed -i "s/__ROBEING__/${ROBEING}/" .env - -docker compose up -d -``` - -### 4. CI/CD 통합 (Gitea Actions) -```yaml -- name: Create log dir - run: | - ssh admin@192.168.219.52 "sudo mkdir -p /mnt/51123logs/${{ env.PROJECT }}" - ssh admin@192.168.219.52 "sudo chown 999:docker /mnt/51123logs/${{ env.PROJECT }}" -- name: Deploy - run: | - sed -i "s/__ROBEING__/${{ env.PROJECT }}/" .env - docker compose up -d -``` - -### 5. 기존 로빙 마이그레이션 -```bash -for r in rb8001 rb10408 rb10508_test; do - sudo mkdir -p /mnt/51123logs/$r - sudo chown 999:docker /mnt/51123logs/$r - mv /home/admin/ivada_project/$r/logs/* /mnt/51123logs/$r/ 2>/dev/null || true -done -``` - -## 템플릿 방식의 장점 -1. **수동 작업 제로**: 스크립트 한 번 실행으로 끝 -2. **환경별 자동 전환**: 로컬에선 `./logs`, 서버에선 `/mnt/51123logs` -3. **확장성**: 새 로빙 추가 시 이름만 변경 -4. **CI/CD 통합 가능**: 완전 자동화 +**참고**: 이 템플릿 방식은 제안만 되었고, 실제로는 250801 크론잡 방식으로 해결됨. +- 크론잡으로 매일 새벽 3시 rsync 동기화 +- 자세한 내용은 [250801_claude_크론잡로그동기화설정.md](./250801_claude_크론잡로그동기화설정.md) 참조 ## 교훈 1. **서버 간 통신은 항상 SSH 키 먼저**: 51123-51124 간 SSH 키가 설정되어 있지 않았음 @@ -158,12 +103,10 @@ done 6. **권한 문제는 미리 해결**: Docker UID/GID 차이 주의 7. **자동화는 필수**: 수동 작업은 실수의 원인 -## 남은 작업 -1. 기존 로빙들 마이그레이션 -2. 배포 스크립트 작성 -3. Gitea Actions 워크플로우 수정 -4. 로그 로테이션 정책 설정 -5. 영구 마운트 설정 (/etc/fstab) +## 실제 구현 상태 +- **250801 크론잡 방식으로 구현 완료** +- 매일 새벽 3시 자동 동기화 중 +- 7일 이상 로컬 로그 자동 삭제 ---