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
'Develop Issue > PHP' 카테고리의 다른 글
php로 curl 요청을 하였으나 빈값이 오는 경우.. (184) | 2020.01.02 |
---|---|
그누보드에서 서버측 php가 자동으로 글쓰게하는 법 (0) | 2018.07.31 |
Cent OS에서 PHP 파일 접근 권한 문제(permission denied) 해결방법 (0) | 2017.11.28 |
간단한 리눅스 환경에서 웹서버 구축 (아파치 서버, PHP, Mysql) (0) | 2016.01.11 |
아주 간단한 PHP 데이터베이스(mysql) 연동 (0) | 2016.01.04 |