12일 동안 멈춰 있던 크론을 발견한 날

집에 둔 서버에서 파일 동기화 서비스를 쓰고 있다. 어느 날 미리보기 생성이 밀리고 알림이 늦게 오는 게 눈에 띄어 점검했다.

발견

관리 화면의 정기 작업 항목에 마지막 실행이 12일 전으로 찍혀 있었다. 서비스 자체는 정상 동작하고 있었기 때문에 화면을 열어보기 전까지 몰랐다.

원인은 단순했다. 시스템 크론 항목이 사라져 있었다. 이전에 PHP 버전을 만지면서 경로가 바뀌었고, 크론이 참조하던 실행 파일 경로가 더 이상 유효하지 않았다.

처리한 것

  1. 크론 항목을 다시 등록하고 절대 경로로 고정했다.
  2. 밀려 있던 정기 작업을 수동으로 한 번 돌려 큐를 비웠다.
  3. PHP를 8.1에서 8.3으로 올렸다. 구버전에서 경고가 계속 쌓이고 있었고, 어차피 손대는 김에 정리했다.
  4. 보안 점검 항목에서 지적되던 HSTS 헤더를 웹서버 설정에 추가했다.

재발 방지

가장 큰 문제는 12일 동안 몰랐다는 것이었다. 그래서 정기 작업의 마지막 실행 시각을 주기적으로 확인해 일정 시간 이상 밀리면 알리도록 점검 항목에 넣었다.

개인 서버는 고장이 조용히 온다. 서비스가 살아 있으면 정상처럼 보이기 때문에, 동작 여부가 아니라 최근 실행 시각을 보는 지표를 하나쯤 만들어두는 편이 안전하다.

서버운영크론점검홈서버
12일 동안 멈춰 있던 크론을 발견한 날 · peppercode 개발 노트