This article introduces how to use crontab in PHP to automatically run related programs. Friends in need can refer to it.
crontab - operates a per-user daemon and a schedule for that execution. The specific parameters are described as follows: crontab file [-u user]-Replace the current crontab with the specified file. crontab-[-u user]-Replace the current crontab with standard input. crontab-1[user]-Lists the user's current crontab. crontab-e[user]-Edit the user's current crontab. crontab-d[user]-Delete the user's current crontab. crontab-c dir- specifies the crontab directory. The format of crontab file: M H D m d cmd.M: minutes (0-59). H: hour (0-23). D: Day (1-31). m: month (1-12). d: Day of the week (0~6, 0 is Sunday). The program to be run by cmd is sent to sh for execution. This shell only has three environment variables: USER, HOME, and SHELL. Here are some specific application examples for your reference. Copy code Code example: #MIN HOUR DAY MONTH DAYOFWEEK COMMAND #everyday6am 106* * * date #everytwohours 0*/2* * * date #Every two hours between 11pm and 8am, in the morning 0 23-7/2, 8* * * date #On the 4th of every month and every Monday to Wednesday at 11am 0 11 4* mon-wed date #1月日4am 0 4 1 jan* date Example lark:~>crontab-1 lists the user's current crontab. #MIN HOUR DAY MONTH DAYOFWEEK COMMAND 10 6* * * date 0*/2* * * date 0 23-7/2,8 * * * dateWhen using crontab in Linux, special attention must be paid to environment variables. Here, we take sqlplus executing Oracle as an example to explain how to use crontab. 1. How to use crontab: crontab [ -e | -l | -r ] file name -e: edit task -l: display task information -r: delete scheduled execution task information 2. The file format processed in crontab is minute hour date month week executed file name * represents all conditions 5 * * * * rem /home/oracle/execsql represents the execution of the /home/oracle/execsql file at 5 minutes of each hour 3. Commands such as SQL that need to be run under specific environment variables must be listed in the execution file. If sqlplus is executed under oracle, it must be written in the following format: $ 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=$ORAC LE_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 (execute @test1.ext file, database The username/password is test1/test1) Which requires execsql to be an executable program $ ls -al execsql -rwxr-xr-x 1 oracle dba 374 Oct 07 15:17 execsql Use crontab to make the php program run at 12:00 Just change it according to the following format and add it to crontab. 00 0 * * * cd /your program path;php your program name.php This needs to be compiled with php in cli or cgi mode. Also: If there is no administrative rights, there is only a virtual space There is a function in PHP that is very useful. This is gradually used in recent development. int ignore_user_abort ([bool setting]) The function of this function is to instruct the server whether to continue executing the following script after the remote client closes the connection. The setting parameter is an optional parameter. If set to True, it means that if the user stops running the script, it will not affect the running of the script (that is, the script will continue to execute); if set to False, it means that when the user stops running the script, the script will stop running. php background execution task code: Copy code Code example: |