Rain Wiki · Linux

cron과 crontab

cron이 예약된 작업을 실행하는 방식, 다섯 개의 crontab 시간 필드, 시스템 cron 파일의 위치 및 systemd 타이머와의 비교.

Linux · Rain Wiki

cron은 일정에 따라 명령을 실행하는 고전적인 Unix 데몬입니다. 각 사용자는 crontab -e로 편집하는 crontab을 가지고 있으며, 각 줄에는 다섯 개의 시간 필드(분, 시, 일, 월, 요일)와 그 뒤에 실행할 명령이 옵니다. 시스템 작업은 /etc/crontab 및 /etc/cron.d/에 위치합니다.

시간 필드

'30 2 * * *'는 매일 02:30을 의미하고, '*/10 * * * *'는 10분마다, '0 9 * * 1'은 매주 월요일 09:00을 의미합니다. 요일에서 0과 7은 일요일입니다.

시스템 파일

/etc/cron.d/ 및 /etc/crontab의 파일에는 시간과 명령 사이에 사용자 이름이라는 추가 필드가 있습니다. /etc/cron.daily와 같은 디렉터리는 하루에 한 번 실행되는 스크립트를 보관합니다.

일반적인 함정

cron은 최소한의 환경에서 실행됩니다: 전체 경로를 사용하거나 crontab에서 PATH를 설정하세요. 출력은 소유자에게 메일로 전송되거나 손실되므로 로그 파일로 리디렉션하세요. % 문자는 crontab 줄에서 특별한 의미를 가지므로 \%로 이스케이프해야 합니다.

systemd 타이머

systemd 배포판에서는 저널 로깅, 무작위 지연, 누락된 실행의 사후 처리(Persistent=true) 기능을 갖춘 대안으로 .timer 유닛을 제공합니다.

일일 작업 추가 방법

  1. crontab을 엽니다: crontab -e
  2. 예를 들어 다음 줄을 추가합니다: 30 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
  3. 저장하고 종료합니다; cron이 자동으로 변경 사항을 반영합니다.
  4. 작업 목록을 확인합니다: crontab -l

주의 사항

  • 'crontab -r'은 확인 절차 없이 전체 crontab을 삭제합니다.
  • 작업을 예약하기 전에 동일한 사용자로 명령을 수동으로 테스트하세요.

출처

최종 업데이트: 2026-10-08

관련 문서