crontabphp 자동 실행 방법 분석

3331 단어 phpcrontab
crontab는 linux가 자체적으로 가지고 있는 명령으로 php를 자동으로 운행하는 방법입니다. php가 자동으로 운행하는 데는 여러 가지 방법이 있습니다. 여기에는 다음과 같은 DZ와 시스템을 통해 완성된 방법과 주류 시스템을 직접 실행하는 방법이 있습니다.Discuz 백그라운드에는 php를 자동으로 실행할 수 있는 예약된 작업이 있습니다.DZ 계획 작업의 메커니즘은 다음과 같습니다. 1.우선 계획 퀘스트를 촉발하는 시간에 방문(회원, 관광객, 검색엔진의 거미)이 있고 이 계획 퀘스트를 촉발합니다.PHP는 터치가 언어이기 때문에 아무도 그를 방문하지 않으면 아무것도 할 수 없다.2. 임무 수행을 계획한다.3. 실행 성공, 실행 성공 정보를 되돌려주고 데이터베이스에 업데이트하여 현재 실행 시간을 기록합니다. 다음에 실행해야 할 시간입니다.현재 php를 자동으로 실행하는 방법은 다음과 같은 몇 가지 방법이 있다. 1: 윈도우즈에서 계획 작업을linux에서crantab로 하는 단점: 서버 권한이 있어야 한다. 2: 어떤 웹 페이지를 일정 시간 간격으로 새로 고칩니다. 예를 들어 js나 php 프로그램으로 합니다.단점: 반드시 어떤 도구로 이 페이지를 열어야 한다.3: 사용자가 접근할 때 단점을 터치합니다. 사용자가 방문한 페이지에 터치 프로그램을 포함해야 합니다.crontab로 정시 실행은 UNIX의 명령인 crontab - 모든 사용자의 수호 프로그램과 이 실행 시간표를 조작합니다.구체적인 일부 매개 변수는 다음과 같다.crontab file [-u user]-현재 crontab를 지정한 파일로 대체한다.crontab-[-u user]-현재 crontab를 표준 입력으로 대체합니다.crontab-1 [user] - 사용자의 현재 crontab을 표시합니다.crontab-e [user] - 사용자의 현재 crontab을 편집합니다.crontab-d[user] - 사용자의 현재 crontab을 삭제합니다.crontab-c dir-crontab의 디렉터리를 지정합니다.crontab 파일 형식: M H D m d cmd.M:분(0-59).H:시간(0-23).D: 일(1-31).m:월(1-12).d:일주일 내의 날(0~6,0은 일요일).cmd가 실행할 프로그램은 sh로 전송됩니다. 이 셸은 USER, HOME, SHELL 세 가지 환경 변수만 있습니다.다음은 예제 파일입니다

#MIN HOUR DAY MONTH DAYOFWEEK COMMAND
# 6
106* * * date
#
0*/2* * * date
# 11 8 ,
0 23-7/2,8* * * date
# 4 11
0 11 4* mon-wed date
#1 4
0 4 1 jan* date
범례

lark:~>crontab-1 crontab.
#MIN HOUR DAY MONTH DAYOFWEEK COMMAND
10 6* * * date
0*/2* * * date
0 23-7/2,8 * * * date
linux에서 여러 가지 방식으로 정시 운행을 실현할 수 있다. 가장 유연한 것은crontab이다. crontab를 사용할 때 환경 변수 문제를 특히 주의해야 한다. 여기에서oracle의 sqlplus를 예로 들어crontab의 사용 방법을 설명한다.
1:crontab 사용 방법:crontab [-e | -l | -r] 파일 이름 -e: 작업 편집 -l: 작업 정보 표시 -r: 정시 작업 정보 삭제
2:crontab에서 처리된 파일 형식은 분 날짜 월 요일에 실행되는 파일 이름 * 모든 조건을 나타냅니다 5 * * * * * * rem/home/oracle/execsql 시간의 5분을 나타냅니다/home/oracle/execsql 파일
3: sql 등 특정한 환경 변수에서 실행해야 하는 명령은 실행 파일에 반드시 열거해야 한다.oracle에서 sqlplus를 실행하려면 다음 형식으로 작성해야 합니다. $cat execsql ORACLE_HOME=/ora815;export ORACLE_HOME ORACLE_OWNER=oracle;export ORACLE_OWNER ORACLE_SID=ora815;export ORACLE_SID ORACLE_BASE=/ora815/app/oralce;export ORACLE_BASE LD_LIBRARY_PATH=$ORACLE_HOME/lib;export LD_LIBRARY_PATH PATH=$PATH:$ORACLE_HOME/bin:$LD_LIBRARY_PATH;export PATH NLS_LANG=AMERICAN_AMERICA.ZHS16CGB231280;export NLS_LANG/ora815/bin/sqlplus test1/test1 @test1.ext(@test1.ext 파일 실행, 데이터베이스 사용자 이름/비밀번호는test1/test1)
그 중에서execsql을 실행 가능한 프로그램으로 요구합니다. $ls-al execsql-rwxr-xr-x1 oracledba374 Oct07 15:17 execsql은crontab를 사용하여 php 프로그램을 12:00에 실행하려면 아래 형식에 따라 변경하고crontab에 추가하면 됩니다. 00 * * cd/당신의 프로그램 경로;php 프로그램 이름입니다.php 이거 컴파일해야 할 때 cli나 cgi 모드의 php가 있어요.또한 관리 권한이 없으면 가상 공간 PHP에 함수만 있으면 유용합니다.이것은 최근의 개발에서야 점차 사용되었다.int ignore_user_abort ([bool setting]) 이 함수의 역할은 서버 측이 원격 클라이언트가 연결을 닫은 후에 다음 스크립트를 계속 실행하는지 지시하는 것입니다.setting 매개 변수는 선택할 수 있는 매개 변수입니다.True로 설정하면 사용자가 스크립트 실행을 중지해도 스크립트 실행에 영향을 주지 않음 (즉, 스크립트는 계속 실행됨) 을 나타냅니다.False로 설정하면 사용자가 스크립트 프로그램을 중지하면 스크립트 프로그램이 중지됩니다.다음 예제에서는 사용자가 브라우저를 닫은 후에도 스크립트를 서버에서 계속 실행합니다

 ignore_user_abort(); //
 set_time_limit(0); //
 do{
 sleep(60); // 1
 }while(true);
서버에서 이 프로그램을 닫지 않으면 이 코드는 영원히 실행될 것입니다.

좋은 웹페이지 즐겨찾기