PHP 배치 작업

(PHP 배치작업에서 넘어옴)
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@zetawiki ~]# php test1.php
[root@zetawiki ~]# cat test1.txt
John Smith

3.2 인수 받기 1[ | ]

test2.php를 편집기로 열고,

vi test2.php

아래 내용을 넣은 후

<?php
print_r($argv);
?>

실행시켜 보자.

실행 예시
[root@zetawiki ~]# 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@zetawiki ~]# php test3.php 3
0 1 2 
[root@zetawiki ~]# php test3.php 10
0 1 2 3 4 5 6 7 8 9 
[root@zetawiki ~]# php test3.php

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

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

[root@zetawiki ~]#

4 예약작업[ | ]

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

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

5 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}