본문으로 바로가기

<PHP>

 

1. php 파일 상단에 아래 내용 입력

    !#/usr/local/php/bin/php -q  또는 !#/usr/bin/php -q

    <?

     php 코드..

    ?>

 

   첫줄 !#/usr/local/php/bin/php -q 은 PHP 파일의 절대경로.
   위치는 리눅스 Shell 상에서 whereis php 로 확인가능.

 

2. PHP 코드에 include 파일 정보는 절대경로로 적어야 함.

    include_once "/home/httpd/db.php";

 

 

<크론탭>

리눅스 Shell 상에서..

 

크론탭 스케쥴 확인 (list) (처음엔 아무것도 없음)

# crontab  -l

 

크론탭 스케쥴 등록 

# crontab  -e 

 

스케쥴 등록(php일 경우)

예시1) * * * * * /usr/bin/curl  http://www.사이트.com/실행 할 파일 경로.php 

예시2) * * * * * /usr/bin/wget  http://www.사이트.com/실행 할 파일 경로.php

 

* * * * * /usr/bin/curl  도메인을 포함한 실행 할 파일 경로.php => 1분 마다 실행 

*/5 * * * * /usr/bin/curl  도메인을 포함한 실행 할 파일 경로.php => 5분 마다 실행 

0 */5 * * * /usr/bin/curl  도메인을 포함한 실행 할 파일 경로.php => 5시간 마다 실행 

5 2 * * * /usr/bin/curl  도메인을 포함한 실행 할 파일 경로.php  => 2시 5분에 실행

45 5 * * 5 /usr/bin/curl  도메인을 포함한 실행 할 파일 경로.php  => 매주 금요일 오전 5시 45분에 실행

0,20,40 * * * * /usr/bin/curl  도메인을 포함한 실행 할 파일 경로.php  => 매일 매시간 0분, 20분, 40분에 실행

0 1 * * * /usr/bin/curl  도메인을 포함한 실행 할 파일 경로.php => 매일 1시 0분에 실행

0 5 1 * * /usr/bin/curl  도메인을 포함한 실행 할 파일 경로.php =>매달 1일 새벽 5시에 실행.

 

*표의 의미는 실행 주기

분(0-59)  시간(0-23)  일(1-31)  월(1-12)   요일(0-7) (0일요일 1월요일...6토요일 7일요일)

 

크론탭 재실행

systemctl restart crond

 

만일 실행이 안될경우  - 크론탭 상단에 환경 변수 입력

참조 : https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_other&wr_id=114111&sca=&sfl=mb_id&stx=grace52&sop=and

참조 : https://conory.com/blog/21351

 

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin

 

* wget 사용시 root 기본적으로 디렉토리에 php파일을 다운로드 받는데 --spider 옵션을 주면 다운로드 받지 않는다.

*/2 * * * * /usr/bin/wget --spider http://.....

 

참고 : https://codeday.me/ko/qa/20190318/92323.html

 

------

블로그 보면 사용자 지정 함수가 안된다는 글들이 보이는데

일단, CentOS 7 기준으로 사용자 함수 호출 잘됨

 

 

로그 - 마지막 20라인 확인

 

아파치 로그

$ tail -20 /var/log/httpd/error_log

 

 

crontab 로그

$ tail -20 /var/log/cron

 

 

 

크론탭 실행시 이메일 메시지 해제

You have new mail in /var/spool/mail/root

 

vi /etc/crontab

에서 MAILTO=root

로 되어있는것을 MAILTO= 로 바꾸어

주면된다.