본문 바로가기

Server/리눅스

[Linux] crontab(크론탭) 설정 및 사용법

crontab(크론탭) 이란?

윈도우 스케쥴러와 비슷한 도구 중 하나로, 미래 임의의 시간에 작업을 실행하거나 일정한 시간(매분, 매시간, 매달, 매해)마다 자동으로 작업을 실행할 수 있도록 해주는 리눅스 도구

(/var/spool/cron/ID에 위치)

 

1. crontab 설정을 위한 리눅스 명령어

 

1) crontab -e : crontab 설정을 위한 vi editor 열기(설정 후 빠져나오면 cron 데몬을 따로 돌릴 필요없이 바로 적용 됨)

2) crontab -l : 설정된 crontab 정보 보기

3) crontab -r : crontab 삭제

4) ps -eflgrep cron : cron demon이 돌고 있는지 확인

5) kill -9 "pid of cron" : kill cron demon

 

2. crontab 설정

 

crontab 주기 설정을 위한 포맷

[ 분(Minute) 시간(Hour) 일(Day) 월(Month) 요일(Week) + (리눅스 커맨드 or 쉘 스크립트(.sh)) ]

 

- 분(0~59)/시간(0~23)/일(1~31)/월(1~12)/요일(0~7) 사이의 값으로 제한한다.

- 요일에서 0과 7은 일요일이며 1~6은 월요일~토요일을 의미한다.

- 콤마(,)를 사용하여 여러 시간대를 지정할 수 있으며, 하이픈(-)을 통하여 시간 범위도 설정 가능하다.

- 하이픈(-)으로 시간 범위를 설정한 것에 대하여 슬래쉬(/)를 통하여 시간 간격을 설정할 수 있다. (ex. 2~10/3은 3, 6, 9를 뜻함)

- 각 항목별 제한을 없어려면 이용하려면 *를 넣어준다.(ex. 매달 28일 00시에 test.sh파일을 실행: 0 0 28  * * /home/test/test.sh)

 

3. 그 외 설정

 

1) crontab 사용자 설정

 

/etc/cron.allow : 사용 허가할 ID 설정

/etc/cron.deny : 사용 거부할 ID 설정

 

2) >/dev/null 2>&1

 

명령어 처리 결과 또는 에러 메세지를 모두 버린다는 설정으로 처리 결과와 에러 메세지를 파일로 저장하고 싶다면 /dev/null 대신 파일명을 적어주면 된다.