cron 작업 실행 여부 확인과 디버깅이 중요하다는 걸 깨달은 건 6개월 전에 등록한 DB 백업 cron이 실제로는 한 번도 실행 안 됐다는 걸 우연히 발견했을 때입니다. 로그 파일도 없었고, crontab에는 분명히 등록돼 있었습니다. 알고 보니 스크립트 경로에 공백이 있어서 파싱 에러가 났지만 아무 알림도 없었습니다.
# 시스템 cron 로그 확인
grep CRON /var/log/syslog | tail -50
# 또는
sudo journalctl -u cron --since "2 days ago" | tail -100
# cron 데몬 상태 확인
sudo systemctl status cron
# 현재 사용자 cron
crontab -l
# root cron
sudo crontab -l
# 시스템 전체 cron (디렉토리)
ls /etc/cron.d/
ls /etc/cron.daily/
cat /etc/cron.d/명칭
# 모든 사용자 cron 스캔
for user in $(cut -f1 -d: /etc/passwd); do crontab -u $user -l 2>/dev/null && echo "--- $user"; done
# cron은 PATH가 제한됨 → 스크립트 내 절대경로 사용 필수
# 잘못된 예
0 2 * * * db-backup.sh
# 올바른 예
0 2 * * * /usr/local/bin/db-backup.sh >> /var/log/db-backup.log 2>&1
# cron과 동일한 환경으로 수동 테스트
env -i HOME=/root SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /usr/local/bin/db-backup.sh
# 백업 파일이 오늘 날짜로 생성됐는지 확인
ls -la /var/backups/mysql/*.sql.gz | grep $(date +%Y%m%d)
# 24시간 이내 파일이 없으면 알림
find /var/backups/mysql/ -name "*.sql.gz" -mtime -1 | grep -q . || \
echo "백업 파일 없음 - cron 확인 필요" | mail -s "[서버경고] DB 백업 실패" admin@사이트.com
cron 등록 후에는 반드시 실제 로그 파일을 확인해서 정상 실행됐는지 검증해야 합니다. “등록했으니 돌겠지”라는 가정은 나중에 큰 손실로 이어질 수 있습니다.
AI가 초안을 생성하고, 의료기관 인프라 운영자가 1차 데이터 기반으로 최종 검수·승인합니다.
작성·검수: WavePix 운영자 (의료기관 3곳 인프라 전담)