resilient-server-ops은(는) 무엇을 하나요?
약한 연결 프로토콜 — SSH, 배포, 불안정한 네트워크(모바일, 기차, 불안정한 Wi-Fi)에서의 원격 작업을 위한 중단에 강한 Claude Code 에이전트 스킬입니다. 원자적 쓰기 + nohup + 멱등성 + 복구 브레드크럼.
개요
resilient-server-ops는 네트워크 연결이 자주 끊기거나 불안정한 환경에서도 안정적으로 서버 운영 작업을 수행할 수 있도록 도와줍니다. 주로 다음과 같은 상황에서 유용합니다:
- 이동 중(기차, 자동차)에서 SSH 접속
- 불안정한 Wi-Fi(카페, 호텔)에서 배포 작업
- 장시간 실행되는 작업이 중간에 끊길 위험이 있을 때
주요 기능
원자적 쓰기 (Atomic Writes)
모든 파일 쓰기 작업은 원자적으로 수행됩니다. 즉, 작업 도중 연결이 끊기더라도 부분적으로 쓰여진 파일이 남지 않습니다. 대신 임시 파일에 먼저 기록한 후, 완료되면 최종 위치로 이동시킵니다 (mv 사용).
nohup 지원
장시간 실행되는 명령어는 nohup으로 실행하여, SSH 세션이 끊겨도 백그라운드에서 계속 실행되도록 보장합니다. 작업 ID와 stdout/stderr 로그 파일 경로를 저장해 두었다가 나중에 확인할 수 있습니다.
멱등성 (Idempotency)
모든 주요 작업은 멱등성을 가지도록 설계되었습니다. 예를 들어:
deploy작업: 이미 최신 코드가 배포되어 있으면 아무것도 하지 않습니다.restart service작업: 서비스가 이미 실행 중이면 다시 시작하지 않습니다.
복구 브레드크럼 (Recovery Breadcrumbs)
작업이 중단되면, 복구 브레드크럼을 남겨 어떤 단계까지 진행되었는지 기록합니다. 이후 동일한 작업을 다시 실행할 때 중단된 지점부터 재개할 수 있습니다. 브레드크럼은 일반적으로 /tmp/resilient-ops-* 디렉토리에 저장됩니다.
사용법
# SSH 연결 후 원격 서버에서 스킬 활성화
claude code --skill mirosing/resilient-server-ops
# 배포 수행 (네트워크 불안정 상황에서도 안전)
> deploy my-app to production
# 장시간 실행되는 스크립트 실행 (nohup 자동 적용)
> run long-running-migration.sh
# 중단된 작업 재개
> resume last deployment
환경 변수
| 변수명 | 설명 | 기본값 |
|---|---|---|
RESILIENT_OPS_DIR | 브레드크럼 및 로그 저장 경로 | /tmp/resilient-ops |
RESILIENT_OPS_TIMEOUT | 각 명령어의 타임아웃 (초) | 300 |
RESILIENT_OPS_RETRIES | 실패 시 재시도 횟수 | 3 |
RESILIENT_OPS_IDEMPOTENT | 멱등성 활성화 여부 | true |
파일 구조
~/.claude/skills/mirosing/resilient-server-ops/
├── SKILL.md
├── lib/
│ ├── atomic.sh # 원자적 쓰기 함수
│ ├── nohup.sh # nohup 실행 헬퍼
│ ├── idempotent.sh # 멱등성 체크 함수
│ └── recovery.sh # 브레드크럼 관리
└── examples/
└── deploy.sh # 배포 예제 스크립트
자세한 내용
각 모듈의 자세한 사용법은 lib/ 디렉토리 내 스크립트를 참조하세요. 문제가 발생하면 브레드크럼 디렉토리($RESILIENT_OPS_DIR)에서 로그를 확인할 수 있습니다.