PHP 배치 작업

Jmnote bot (토론 | 기여)님의 2015년 2월 6일 (금) 02:51 판 (로봇: 자동으로 텍스트 교체 (-<source lang='dos'> +<source lang='cli'>))
PHP execution in bash shell, PHP batch process, PHP cron job
PHP 배치 작업 돌리기
PHP 스크립트 작업
리눅스 셸에서 PHP 파일 실행하기
PHP 파일 쉘에서 실행할 때 파라미터 전달하기

1 개요

  • 리눅스(또는 윈도우) 쉘에서 php 파일을 실행할 수 있다.
  • crontab에 등록하여 주기적 수행되도록 할 수 있다.
  • $_SERVER 변수를 사용할 수 없다. 예를 들어 다음과 같은 코드는 제대로 실행되지 않을 것이다.
include $_SERVER['DOCUMENT_ROOT'].'/my_lib.php';

2 방법

php 파일명.php
→ 옵션을 명시하여 php -f 파일명.php 라고 써도 되지만 굳이 그럴 필요는 없다.

3 테스트

3.1 파일 쓰기

test1.php를 편집기로 열고,

vi test1.php

아래 내용을 넣은 후

<?php
file_put_contents("test1.txt", "John Smith\n");

실행시켜 보자.

실행 예시
[root@jmnote ~]# php test1.php
[root@jmnote ~]# cat test1.txt
John Smith

3.2 인수 받기 1

test2.php를 편집기로 열고,

vi test2.php

아래 내용을 넣은 후

<?php
print_r($argv);
?>

실행시켜 보자.

실행 예시
[root@jmnote ~]# php test2.php hello world 2012
Array
(
    [0] => test2.php
    [1] => hello
    [2] => world
    [3] => 2012
)

3.3 인수 받기 2

test3.php를 편집기로 열고,

vi test3.php

아래 내용을 넣은 후

<?php
$k=0;
if(isset($argv[1])&&$argv[1]>0)$k=$argv[1];
for($i=0;$i<$k;$i++) {
	print "$i ";
}
print "\n";

실행시켜 보자.

실행 예시
[root@jmnote ~]# php test3.php 3
0 1 2 
[root@jmnote ~]# php test3.php 10
0 1 2 3 4 5 6 7 8 9 
[root@jmnote ~]# php test3.php

[root@jmnote ~]# php test3.php jmnote

[root@jmnote ~]# php test3.php -1

[root@jmnote ~]#

4 예약작업

이 부분에 대해 더 많은 내용을 읽으려면 crontab 문서를 참조해 주세요.

cron 예약작업 예시
[root@jmnote ~]# crontab -l
00 02 * * * php /root/script/backup.php
→ 매일 02:00에 /root/script/backup.php를 수행한다.

5 같이 보기