DOCS/02_Architecture/51123_to_internal_nas_sync_verification_runbook.md
happybell80 240465158e chore(workflow): 런북을 워크플로우로 통일
- 51123_nas_sync_verification_workflow.md 신규
- 51123_github_org_repo_bootstrap_workflow.md 신규
- 기존 런북 deprecated 표시 및 SSOT 링크
- workflow README 문서 목록 테이블화

Made-with: Cursor
2026-03-17 22:08:03 +09:00

7.8 KiB

tags
tags
infra
nas
sync
runbook
51123
companyx
deprecated

51123 -> 내부 NAS 동기화 점검 런북 (deprecated)

SSOT 이동: 이 절차는 workflow/51123_nas_sync_verification_workflow.md로 통합되었습니다. 해당 워크플로우를 우선 참조하세요.


51123 -> 내부 NAS 동기화 점검 런북

상위 원칙

관련 문서

목적

  • 51123 서버에서 내부 NAS 192.168.0.101에 접속해 Company X 외부 NAS 동기화 상태를 같은 절차로 반복 점검한다.
  • 이 문서는 사건 기록이 아니라, 운영자가 다시 실행할 수 있는 고정 절차를 남기는 런북이다.

적용 범위

  • 점검 주체: 51123 서버
  • 점검 대상: 내부 NAS 192.168.0.101
  • 점검 주제:
    • NAS SSH 접속 가능 여부
    • NAS 라우팅이 외부 NAS 경로 기준으로 유지되는지
    • Go 테스트 결과가 남아 있는지
    • 현재 운영 중인 fullscan / hierarchical 동기화가 실패 없이 끝났는지

SSOT 기준값

  • 내부 NAS 호스트: 192.168.0.101
  • NAS 공유 기준: /mnt/nas
  • 51123 런타임 기준 파일:
    • /home/admin/workspace-config/runtime.env
    • /home/admin/workspace-config/secrets.env
  • 23 서버 cron 기준:
    • */30 * * * * /home/admin/infra/scripts/bin/companyx_external_nas_sync_hierarchical_cron.sh
    • 0 1 * * * /home/admin/infra/scripts/bin/companyx_external_nas_sync_fullscan_cron.sh
  • NAS 로컬 동기화 로그 기준:
    • ~/workspace/.sync-logs/
    • ~/workspace/.sync-logs-hierarchical/
  • NAS 로컬 Go 테스트 흔적 기준:
    • ~/workspace/.sync-logs-go/
    • ~/workspace/.sync-logs-go-real-20260313/
    • ~/workspace/.sync-logs-go-live/

사전 확인

1. 51123 기준값 확인

grep -n '^NAS_' /home/admin/workspace-config/runtime.env /home/admin/workspace-config/secrets.env
crontab -l
ls -la /mnt/nas/workspace/.sync-logs /mnt/nas/workspace/.sync-logs-hierarchical

확인 기준:

  • NAS_HOST=192.168.0.101이어야 한다.
  • 30분 계층형과 1일 1회 전수조사 cron이 보여야 한다.
  • /mnt/nas/workspace/.sync-logs* 아래 최신 summary 파일이 있어야 한다.

2. NAS SSH 포트 확인

nc -vz -w 3 192.168.0.101 22
ssh-keygen -F 192.168.0.101

확인 기준:

  • 22/tcp 접속 성공
  • known_hosts에 기존 호스트키가 있으면 재확인 없이 바로 접속 가능

접속 절차

1. 51123에서 내부 NAS SSH 접속

ssh -o StrictHostKeyChecking=no admin@192.168.0.101

설명:

  • 현재 운영 확인 기준 계정은 admin이다.
  • 비대화형 키 접속이 보장되지 않으므로, 필요 시 비밀번호 입력으로 접속한다.
  • 이 문서는 접속 방법을 남기는 문서이며, 비밀번호 값 자체는 문서에 적지 않는다.

2. NAS 기본 상태 확인

date
hostname
whoami
ip route

성공 기준:

  • hostname은 내부 NAS 장비명으로 응답해야 한다.
  • 라우팅에 default via 192.168.0.1 dev eth1가 있어야 한다.
  • 외부 NAS 호스트 라우트가 있으면 112.218.113.4 via 192.168.0.1 dev eth1 형태여야 한다.

점검 절차

1. NAS 내부에서 동기화 관련 경로 찾기

find ~ -maxdepth 3 \( -name '*companyx*' -o -name '*probe*' -o -name '*.log' -o -path '*/log/*' \) 2>/dev/null | sort | tail -n 200

목적:

  • Go 프로브/테스트 바이너리와 로컬 sync 로그 경로가 실제로 남아 있는지 본다.

2. Go 테스트 결과 확인

for f in \
  ~/workspace/.sync-logs-go/companyx_sync_summary_*.json \
  ~/workspace/.sync-logs-go-real-20260313/companyx_sync_summary_*.json \
  ~/workspace/.sync-logs-go-live/companyx_sync_summary_*.json
do
  [ -f "$f" ] && echo "FILE=$f" && cat "$f"
done

판단 기준:

  • 샘플 다운로드 테스트는 downloaded > 0, failed = 0이면 1차 성공으로 본다.
  • 같은 경로 재실행 테스트는 downloaded = 0, skipped > 0, failed = 0이면 증분 판정이 동작한 것으로 본다.
  • 루트 기준 go-live 테스트는 files_seendownloaded/skipped/failed가 남아 있어야 한다.

3. 현재 fullscan 운영 결과 확인

cat ~/workspace/.sync-logs/companyx_sync_state.json
ls -1t ~/workspace/.sync-logs/companyx_sync_summary_*.json | head -n 3 | while read f; do
  echo "FILE=$f"
  cat "$f"
done

판단 기준:

  • 최신 summary에 finished_at이 있어야 한다.
  • failed = 0이면 실패 없이 종료한 것이다.
  • downloaded = 0이어도 skipped > 0이면 정상 재검사일 수 있으므로 실패로 보지 않는다.
  • state 파일의 updated_at, last_scanned_path, last_downloaded_path가 있으면 상태 기록 기능은 정상으로 본다.

4. 현재 hierarchical 운영 결과 확인

cat ~/workspace/.sync-logs-hierarchical/companyx_sync_state.json
ls -1t ~/workspace/.sync-logs-hierarchical/companyx_sync_summary_*.json | head -n 3 | while read f; do
  echo "FILE=$f"
  cat "$f"
done

판단 기준:

  • 최근 30분 실행 summary가 계속 생성돼야 한다.
  • failed = 0이면 정상 종료다.
  • downloaded = 0, skipped > 0은 캐시 기반 점검에서 흔한 정상 결과다.

5. 필요 시 결과물 실체 확인

find ~/workspace/companyx_go_sample_real_20260313 -type f | wc -l
stat -c '%n %s %y' ~/workspace/companyx_go_sample_real_20260313/Thumbs.db
find ~/workspace/6.Company\ X -type f | wc -l
stat -c '%n %s %y' ~/workspace/6.Company\ X/Thumbs.db

목적:

  • summary 숫자만이 아니라 실제 파일이 존재하는지 한 번 더 닫는다.

성공 판정 규칙

A. NAS 접속 성공

  • 51123에서 NAS SSH 접속이 된다.
  • NAS 라우팅이 eth1 기준으로 유지된다.

B. Go 테스트 성공

  • 샘플 다운로드 summary에 downloaded > 0, failed = 0
  • 재실행 summary에 downloaded = 0, skipped > 0, failed = 0

C. 운영 동기화 정상

  • latest fullscan summary에 finished_at 존재, failed = 0
  • latest hierarchical summary가 최근 시각까지 누적되고 failed = 0

D. 주의

  • downloaded = 0만으로 실패라고 판단하지 않는다.
  • 반드시 failed, finished_at, updated_at, 실제 파일 존재 여부를 함께 본다.

점검 결과를 어디에 남길지

  • 반복 절차 자체는 이 런북을 SSOT로 유지한다.
  • 특정 날짜의 실제 점검 결과는 아래 중 하나에 남긴다.
    • 장애/이상 징후가 있으면 journey/troubleshooting/
    • 문제 없이 끝난 점검이면 journey/worklog/

이 런북이 다루지 않는 것

  • NAS 로컬에 Go 동기화 본체를 상시 배포하는 절차
  • DSM 작업 스케줄러 또는 NAS cron에 실제 운영 스케줄을 심는 절차
  • 외부 NAS 계정/비밀번호 같은 민감값 기록

한 줄 결론

  • 이 런북은 51123 -> 내부 NAS -> Go 테스트/운영 sync 상태 확인을 같은 기준으로 반복하기 위한 고정 운영 절차다.