피드로 돌아가기
I tested two ways to keep cron jobs healthy. The boring one won.
Dev.toDev.to
DevOps

개발자가 크론 작업의 작은 문제들을 즉시 수정하는 방식으로 주간 디버깅 시간과 운영 스트레스 대폭 감소

I tested two ways to keep cron jobs healthy. The boring one won.

Mickey Hu2026년 3월 29일6beginner

Context

작은 자동화 문제들(임시 파일 방치, 로그 무제한 증가, 상대 경로 의존)을 무시하고 계속 배포했다. 각 문제는 개별적으로는 해롭지 않지만 결합되면 운영 오버헤드와 디버깅 시간이 크게 증가했다.

Technical Solution

  • Shell 스크립트에 set -euo pipefail 추가: 스크립트 실패 시 즉시 중단하고 false-success 방지
  • 임시 파일 정리를 trap cleanup EXIT로 자동화: 스크립트 종료 시 자동으로 rm -rf $TMP_DIR 실행
  • 상대 경로 대신 절대 경로 사용: 크론 작업이 실행 디렉토리에 의존하지 않도록 변경
  • 정리 작업을 멱등성 있게 구성: 파일이 이미 삭제되었거나 폴더가 비어있어도 스크립트가 정상 완료되도록 수정

Impact

1주일 후 로그 파일 열람 횟수 감소, 작업 재실행 빈도 감소, 이상 출력 확인 빈도 감소를 확인했다.

Key Takeaway

자동화 시스템의 작은 문제는 즉시 수정하면 단기적으로 5분 더 걸리지만, 주간 단위로는 디버깅 시간과 운영 인터럽트가 크게 줄어든다. 깔끔한 자동화는 주의를 덜 요구하고 신뢰성이 높아진다.


크론 작업이나 쉘 스크립트를 운영하는 팀에서 `set -euo pipefail`, `trap cleanup EXIT`, 절대 경로, 멱등성 있는 정리 로직을 처음부터 적용하면 주간 디버깅 세션과 야간 장애 대응 빈도를 현저히 줄일 수 있다.

원문 읽기