crontab은 일정 시간동안 정해놓은 패턴을 반복하여 프로그램을 제어 할 수 있는 리눅스의 기능이다.

이를 활용하면, 일정시간마다 실행되어야하는 프로그램들을 간편하게 처리 및 관리해 줄 수 있다.

(마치 윈도우 기반 서버의 작업 스케줄러와 유사하다고 보면된다..)

프로젝트 중, 일정시간마다 php를 실행시켜줘야하는 기능을 구현해야 했는데

이를 통해 빠르게 해결 할 수 있었다.



1. 우선 php엔진이 어느 위치에 존재하는지 확인한다.

# whereis php 


2. crontab을 편집하기 위한 명령어 입력한다. (vi로 동작함)

# crontab -e 


3. 2.를 통해 오픈된 문서에 crontab 룰에 맞춰서 명령어를 작성해준다.

10 * * * * /usr/bin/php -q /.../process.php

맨 앞의 5개 파라미터(* * * * *)은 각각 분, 시, 일, 월, 요일(각 파라미터별 입력범위 : 00~59, 00~23, 00~31, 01~12, 0~7)을 의미한다.

즉 상기 명령어는 각 시간별 10분에 실행하라는 뜻이다.

하지만, 시간별 10분이 아닌 "10분 마다" 실행을 하려면

 */10 * * * *를 입력한다.

그 다음 파라메터는 php엔진의 위치, -q는 실행하겠다는 옵션을 의미한다.

그 다음에 입력된 경로는 실행할 php파일경로다.


4. 기타 명령어들

- crontab 재시작

# /etc/rc.d/init.d/crond restart


- 현재 crontab 리스트 보기

# crontab -l 


- 로그 조회

# tail /var/log/cron


- 작업 종료(사용 시, crontab 명령어들이 사라진다)

# crontab -r 

+ Recent posts