본문 바로가기
개발/Server

[Linux] 크론 Cron PHP 스케줄링 (Ubuntu 기준)

by stephen26 2023. 1. 13.

Linux에선 크론(Cron)을 통해 스케줄링 작업을 실시하는데 이를 활용하면 주기적으로 PHP 페이지를 실행시킬 수 있다.

 

우선 스케줄링 시간 설정을 위해 Timezone 확인 후 기준이 되는 시간을 맞춰준다.

 

 

※ Timezone 변경

1. 현재 Timezone 확인
$ date​

2. 시스템 Timezone 위치 확인
$ ls -al /etc/localtime​

3. Timezone 변경
$ ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime​

 

 

※ Cron 설치 (Ubuntu 기준)

1. cron 설치
$ sudo apt update -y
$ sudo apt install -y cron

2. cron 시작
$ sudo service cron start


3. cron systemctl 등록 및 확인

# systemctl 활성화
$ sudo systemctl enable cron.service

# systemctl 확인
$ sudo systemctl list-unit-files | grep cron

 

Timezone을 KST로 맞춰주고 cron 까지 설정하면 서비스 성격에 맞추어 스케줄링 작업을 실시하면 된다.

 

※ Cron 설정

ㅇ Crontab 형식
minute  hour  day  month  weekday  user  command
*       *     *    *      *        root  명령어


ㅇ Crontab 예시

# cron 설정 파일 편집
$ sudo vi /etc/crontab

# 평일(월~금) 9~12시 매분 root 권한으로 test.php 파일 실행 및 실행 후 log.dat에 결과 저장
* 9,10,11,12  * *  1,2,3,4,5  root  php /var/www/html/test.php >> /var/www/html/log.dat 2>&1

# 평일(월~금) 8시 10분에 root 권한으로 test2.php 파일 실행 및 실행 후 log.dat에 결과 저장
10 8  * *  1,2,3,4,5  root  php /var/www/html/test2.php >> /var/www/html/log.dat 2>&1

# cron 재실행
$ sudo service cron restart

# cron 상태 확인
$ sudo service cron status

 

댓글