Cron 가이드
가이드

crontab 편집과 환경변수: PATH·셸·사용자

crontab -e·환경 차이·시스템 vs 사용자 crontab

작업은 보통 crontab -e 로 편집합니다. 이 명령은 현재 사용자 전용 crontab 을 열고, 저장하면 문법을 검사한 뒤 반영합니다. 목록은 crontab -l, 전체 삭제는 crontab -r 인데 -r 은 확인 없이 지우므로 주의해야 합니다.

cron 이 작업을 실행하는 환경은 여러분이 로그인한 셸과 다릅니다. cron 은 최소한의 환경만 제공하며 PATH 도 보통 /usr/bin:/bin 처럼 짧습니다. 그래서 로그인 셸에서는 되던 명령이 cron 에서는 '명령을 찾을 수 없음'으로 실패하곤 합니다. 명령을 절대경로로 쓰는 것이 안전합니다.

crontab 파일 상단에 환경변수를 선언할 수 있습니다. 자주 쓰는 것은 PATH=/usr/local/bin:/usr/bin:/bin, SHELL=/bin/bash, MAILTO="you@example.com", 그리고 시간대를 고정하는 CRON_TZ=Asia/Seoul 입니다. 값에 공백이 들어가면 따옴표로 감싸세요.

사용자 crontab 과 시스템 crontab 은 형식이 다릅니다. crontab -e 로 만든 사용자 crontab 은 표준 5필드(분 시 일 월 요일)입니다. 반면 /etc/crontab/etc/cron.d/* 의 시스템 항목은 요일 다음에 실행 사용자 필드가 추가된 6필드(분 시 일 월 요일 user 명령)입니다. 이 도구는 표준 5필드를 해석하므로, 시스템 crontab 을 검사할 때는 사용자 필드를 빼고 앞 5필드만 넣으세요.

세밀한 시각 대신 '매일·매시간' 정도면 /etc/cron.daily, /etc/cron.hourly 같은 드롭인 디렉터리에 스크립트를 넣는 방법도 있습니다. 표현식 없이 정해진 주기에 실행되죠. 특정 분·시각이 필요할 때만 crontab 에 이 도구로 만든 표현식을 넣으면 관리가 깔끔해집니다.

자료

스케줄 모음

복사해서 바로 쓰는 레시피

문법 치트시트

5개 필드와 특수문자 한눈에

매크로·별칭

@daily 같은 축약 표현

가이드

cron을 제대로 이해하고 실수를 줄이는 실전 가이드