← 전체 목록
서버백업운영

cron 실행 로그 확인으로 자동화 작업이 제대로 돌고 있는지 검증합니다

ℹ️ 본 글은 정보 제공 목적이며, 광고·제휴 링크가 포함될 수 있습니다.

cron 작업 실행 여부 확인과 디버깅이 중요하다는 걸 깨달은 건 6개월 전에 등록한 DB 백업 cron이 실제로는 한 번도 실행 안 됐다는 걸 우연히 발견했을 때입니다. 로그 파일도 없었고, crontab에는 분명히 등록돼 있었습니다. 알고 보니 스크립트 경로에 공백이 있어서 파싱 에러가 났지만 아무 알림도 없었습니다.

cron 실행 로그 확인

# 시스템 cron 로그 확인
grep CRON /var/log/syslog | tail -50

# 또는
sudo journalctl -u cron --since "2 days ago" | tail -100

# cron 데몬 상태 확인
sudo systemctl status cron

현재 등록된 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 작업 디버깅

# 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곳 인프라 전담)