# 250801 크론잡 로그 동기화 설정 tags: [logs, sshfs, cron, sync, infra] 상위 원칙: - [Writing Principles](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/writing-principles.md) - [Infra Project Identity](../../00_Philosophy/00_IDENTITY/Infra_Project_Identity.md) - [Core Infrastructure Principles](../../00_Philosophy/01_PRINCIPLES/Core_Infrastructure_Principles.md) ## 배경 - Docker와 SSHFS(SSH Filesystem) 직접 결합으로 중앙 로그 저장 구조를 만들려 했지만, 마운트 충돌과 권한 불일치로 실패했다. - 51124 SSD에 먼저 로그를 기록한 뒤, 51123 HDD로 배치 동기화하는 구조가 더 운영 가능하다고 판단했다. ## 관련 문서 - [250731_로그저장소_SSHFS설정과_템플릿해결책](./250731_로그저장소_SSHFS설정과_템플릿해결책.md) - [251014_skill-rag-file_sshfs_allow_other_해결](./251014_skill-rag-file_sshfs_allow_other_해결.md) ## 확인된 사실 1. Docker 볼륨이 SSHFS 마운트 포인트와 직접 충돌했다. - 기존 기록: `mkdir /mnt/51123logs: file exists` 2. SSHFS 권한은 UID/GID 정합성에 민감했다. - `admin(1001)`로 마운트하면 컨테이너 사용자 `999`와 충돌했다. - 권한 정합화 없이는 `rsync` 임시 파일 생성도 실패했다. 3. 배치 동기화는 실제로 성공했다. - 51124 서비스 로그를 51123 `/mnt/hdd/logs/51124-server/`로 동기화한 기록이 남아 있다. - 매일 새벽 3시 크론 실행 구조가 당시 운영안으로 채택됐다. ## 실제 적용 구조 ### 51124 원본 - `/home/admin/ivada_project/*/logs/` ### 51123 백업 - `/mnt/hdd/logs/51124-server/*` ### 동기화 방식 - SSHFS 마운트 경로를 직접 Docker 볼륨으로 쓰지 않고, `rsync` 기반 크론 배치로 넘긴다. ## 결론 - 이 이슈의 핵심 교훈은 `Docker + SSHFS 직접 결합보다 배치 동기화가 더 안정적이었다`는 점이다. - 외부 저장소나 원격 마운트와 컨테이너 런타임을 직접 묶을 때는 권한, 상위 디렉토리 생성, 마운트 포인트 충돌을 먼저 검증해야 한다. ## 전후 관계 문서 - 이전: [250731_로그저장소_SSHFS설정과_템플릿해결책](./250731_로그저장소_SSHFS설정과_템플릿해결책.md) - 관련: [260115_postgresql_neo4j_tcp_healthcheck](./260115_postgresql_neo4j_tcp_healthcheck.md)