크론의 문제는 실패해도 아무 일도 일어나지 않는다는 점입니다. 페이지가 다운되지도, 오류가 표시되지도 않습니다. 백업이 필요할 때 그냥 없을 뿐입니다.
하트비트 패턴
각 작업에 고유한 URL을 부여합니다. 작업이 성공하면 그 URL을 호출합니다. 모니터는 N시간마다 호출을 기대하고, 늦어지면 알림을 보냅니다.
Cron
0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 https://hb.uptimepush.com/p/TOKENsystemd 타이머
서비스 유닛에 ExecStartPost=/usr/bin/curl -fsS https://hb.uptimepush.com/p/TOKEN 을 추가합니다.
Kubernetes CronJob
컨테이너 명령 뒤에 && 로 curl 호출을 덧붙여 성공했을 때만 실행되도록 합니다.
GitHub Actions
URL을 curl로 호출하는 마지막 단계를 추가하고, 토큰은 시크릿으로 저장합니다.
유예 시간
유예 시간은 작업의 정상 최장 실행 시간보다 약간 길게 설정하세요. 어느 날 밤 느려졌다고 호출되지 않도록요.