'PHP 소스 자동실행'에 해당되는 글1건

  1. PHP 파일 자동실행 - cron에 등록해서 사용하기 2007/08/02
배움의 길은 끝이 없다 ㅜ_ㅠ

이번에 내가 작업해야 했던 것이...

[A Table]에서 일정 기간이 지난 데이터를 [B Table]로 자동 옮기기

처음에 생각했던 것은..
홈피나 관리툴 페이지에 숨겨놓고 페이지가 로드 되면 작업이 실행되게끔..
그러나 이건 맘에 들지 않았다

홈피나 관리툴 페이지에 누군가는 꼭 접속을 하겠지만..
(앞으로는 하루에 한번씩은 반드시(?) 그러겠지ㅡ,.ㅡ)

여~~엉.. .찝찝.

그래서 이것저것 알아보니..
cron에 실행시킬 PHP 소스를 등록하여 사용하면 된다고 하길래..
적당한 삽질을 거듭하고 있었다.

각설하고.. 다음과 같이 사용하니 등록도 되고 실행도 되었다.

1) test.php : 실제 작업을 담당하는 소스가 있는 파일

!#/usr/bin/php
-> 설치환경에 따라 다를 수 있으므로 경로를 잘 확인해서 적어주자!
<?

혹시 인쿠르드할 파일이 있다면 절대경로로 이쁘게 작성해주도록 하자.

여기에 처리할 작업을 코딩한다.
나의 경우 DB와 연동해서 INSERT하고 DELETE 하는 코딩.
보통 php 작성하는 대로 하면 되나 HTML 태그나 JAVASCRIPT 코드는 들어가면 안된다.

?>

이렇게 소스 파일을 준비하고 나서..

2)cron에 등록하기
[root@localhost] crontab -e

저렇게 명령을 때려준다.
그럼 vi에디터가 실행되면서(이것도 설정된 에디터 환경에 따라 다르겠지만.. ) 원하는 작업을 등록할 수가 있다.

00 00 * * * lynx http://도메인/디렉토리/디렉토리/test.php
-   -  - - -
1   2  3 4 5         1: 분 2: 시간 3: 일 4:월 5:요일                 

 
매일 자정에 실행할 것이기에.. 00 00 * * * 으로 지정하였고..
실행할 시간을 정해준뒤 뒤에 붙이는 명령어가 날 삽질하게 만들었다.

test.php 가 웹브라우저나 콘솔상에서 실행하면 문제가 없이 잘 작동되는데..
cron에만 등록하면 아무런 반응이 없는 것이었다 ㅜ_ㅠ

/usr/bin/php -f /usr/local/디렉토리/디렉토리/test.php
이렇게 붙여줘도 안 먹고..
옵션을 -q로 바꿔바도 안되고..
참.. wget도 써봤던것 같다.. -_-

저 명령어 부분에서 이짓저짓 다 해가며 고민했는데..
(PHP SCHOOL에서 비슷한 고민을 하신 분을 몇 봤는데 명확한 해답을 찾지 못했다)

lynx http://도메인/디렉토리/디렉토리/test.php >> 이렇게 하니까 먹더라는 거다.. -_-
lynx는 텍스트 브라우저라고 하는데 그 이상 모르겠고.. ㅡ,.ㅡ

등록하고 난 뒤에
[root@localhost]etc/rc.d/init.d/crond stop
[root@localhost]etc/rc.d/init.d/crond start

저 명령도 살포시 때려주면...

뭐 어찌어찌 되긴 했으나...
다른 방법을 썼을때 왜 안되는지.. 원인도 모르고..
그럼 이건 배운게 아니라 삽질한 걸까..? ㅜ_ㅠ






크리에이티브 커먼즈 라이선스
Creative Commons License

'IT' 카테고리의 다른 글

PHP 파일 자동실행 - cron에 등록해서 사용하기  (0) 2007/08/02