반복 작업을 등록하는 사용자 crontab의 시간 표현과 로그 저장 방법입니다. 등록 계정의 권한으로 실행되므로 서비스 계정의 작업과 root 작업을 구분합니다. 다음 예시는 lieper 계정에서 등록하는 작업입니다.
목록과 편집
현재 등록된 작업을 확인하고 편집기로 수정합니다. 편집 전에는 기존 내용을 파일로 보관합니다. 사용자 crontab에는 사용자명 칸을 넣지 않습니다. /etc/crontab 형식과 다릅니다.
crontab -l
crontab -l > /home/lieper/crontab.backup
crontab -e시간 필드는 분, 시, 일, 월, 요일 순서입니다. 요일은 0 또는 7이 일요일이며 1은 월요일입니다. 쉼표는 나열, 하이픈은 범위, */n은 간격을 나타냅니다.
주기 예시
아래 행은 각각 매주 월요일 11시, 매시 10·20·30분, 매 5분 실행입니다. 1-2를 시간에 쓰고 분을 *로 두면 1시부터 2시 59분까지 매분 실행된다는 점도 주의합니다.
0 11 * * 1 /home/lieper/check.sh
10,20,30 * * * * /home/lieper/check.sh
*/5 * * * * /home/lieper/check.sh표준 출력과 오류 보관
>는 기존 로그를 덮어쓰고 >>는 이어 씁니다. 2>&1은 표준 오류를 표준 출력과 같은 곳으로 보냅니다. 로그 디렉터리는 작업 계정이 쓸 수 있어야 합니다.
SHELL=/bin/bash
PATH=/usr/local/bin:/usr/bin:/bin
*/5 * * * * /home/lieper/check.sh >> /home/lieper/check.log 2>&1cron 환경은 로그인 셸과 다르므로 명령의 절대 경로와 필요한 환경변수를 명시합니다. 작업 시간이 주기보다 길면 중복 실행될 수 있으므로 잠금이나 실행 주기 조정이 필요합니다.
등록 후 확인
같은 계정으로 스크립트를 직접 실행해 종료 코드와 로그를 확인합니다. 이후 실제 예약 시각을 지나 로그의 시간과 결과를 확인합니다. 로그를 계속 추가하는 경우에는 logrotate 같은 보관 정책도 별도로 설정합니다.