상태 점검과 실패 알림
관측·판정·알림을 분리해 서비스와 저장 상태를 자동 점검합니다.
진도 0%
레슨
- 셸 점검 스크립트
절대 경로·인용·시간 제한·종료 코드를 적용해 서비스와 용량 상태를 수집합니다.
- Python 상태 판정
표준 입력 JSON의 서비스·HTTP·블록·inode 상태를 판정하고 결정적인 JSON 결과를 출력합니다.
- 실패를 알림으로 전달
점검 실패를 stderr·비정상 종료 코드·실습용 로컬 알림 수신기에 전달하고 전송 실패도 기록합니다.
- 예약 실행과 중복 방지
systemd timer로 점검을 예약하고 잠금으로 중복 실행을 막으며 서비스 실행 환경에서 검사합니다.
상태 점검과 실패 알림 미션
이전 모듈 m07-backup-restore의 산출물을 가져와 관측·판정·알림을 분리해 서비스와 저장 상태를 자동 점검합니다.
요구사항
- 이전 서비스·용량·백업 검증 결과를 check.sh가 읽고 시간·대상·결과를 evidence/checks.jsonl에 남깁니다.
- 알림은 실습 VM의 로컬 수신기에만 전송하고 수신 실패와 점검 실패를 구분합니다.
- m07 미션 solution 전체를 previous/에 보존하고 선택 백업·체크섬과 실제 recovery.json을 inputs/에 복사해 현재 관측과 함께 검사합니다. 복구 기록의 시점과 한계를 automation.md에 씁니다.
- checks.jsonl의 UTC 시각·대상·origin·판정·원인·알림 결과와 stdout/stderr·종료 코드의 역할을 구분합니다.
완료 기준
- 정상은 종료 코드 0, 서비스 중단·HTTP 실패·블록 또는 inode 임계 초과는 비정상 코드인지 검사합니다.
- 시간 초과·입력 손상·알림 수신 실패가 기록되고 로그에 비밀값이 없는지 검사합니다.
- 중복 점검은 한 번만 실행되고 timer에서 동일한 판정이 나오는지 검사합니다.
- bash check-local.sh는 이전 회귀와 새 19개 검사를 실행합니다. check.sh는 이를 수행한 뒤 실제 systemd 유닛 문법·예약 활성/트리거·수동/예약 판정 일치를 조회하므로 external입니다.
- 알림 실제 수신은 15초 자연 종료 수신기와 received.jsonl로 확인합니다. 전송 대역 검사를 실제 HTTP 관측으로 제출하지 않습니다. 종료 0/1/2/3/4/75의 계약과 입력 손상·백업 손상·복구 기록 불일치를 검사합니다.
bash check.sh미션 시작 코드
모범 답안
모범 답안 내려받기검토 기준
- 관측 결과와 판단 근거가 연결되어 있습니다.
- 실습 VM 범위와 필요한 권한을 명시하고 재현 순서를 기록합니다.