"PHP 배치 작업"의 두 판 사이의 차이

107번째 줄: 107번째 줄:
*[[crontab]]
*[[crontab]]
*[[Can't connect to local MySQL server through socket]]
*[[Can't connect to local MySQL server through socket]]
*[[PHP]]


[[분류:리눅스]]
[[분류:리눅스]]
[[분류:PHP]]
[[분류:PHP]]
[[분류:Bash]]
[[분류:Bash]]

2013년 3월 24일 (일) 00:56 판

PHP execution in bash shell, PHP batch process, PHP cron job
PHP 배치 작업 돌리기
리눅스 셸에서 PHP 파일 실행하기
PHP 파일 쉘에서 실행할 때 파라미터 전달하기

1 개요

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

2 방법

  • 아래와 같이 둘다 가능하다. 즉 -f는 생략해도 된다.
php -f 파일명.php

php 파일명.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 cron 작업

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

crontab -e

5 같이 보기

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