crontab is a command that comes with linux
How to make php run automatically
There are many ways to run php automatically, here are the following DZ and some through the system Completed methods and methods that directly trigger the running of the resident system.
Discuz has a scheduled task in the background that can make php run automatically.
The mechanism of DZ scheduled tasks is as follows:
1. First, when it is time to trigger the scheduled task, there is a visit (member, visitor, search engine spider) and then the scheduled task is triggered to occur. (Because PHP is a language that triggers, and no one accesses it, it can't do anything.)
2. Scheduled task execution.
3. If the execution is successful, information about successful execution will be returned, and the current record will be updated in the database. Execution time, the next time it needs to be executed.
Currently there are the following methods to make php run automatically:
1: Use scheduled tasks under windows
Use crantab under linux
Disadvantages: You must have server permissions
2: Use a certain web page to refresh it every once in a while, such as using a js or php program.
Disadvantage: You must use a tool to open the page.
3: Triggered when a user visits
Disadvantage: The trigger program must be included in the page visited by the user.
Using crontab to schedule execution
is a UNIX command
crontab - operates the daemon for each user and the schedule of the execution.
The specific parameters are 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]-List the user's current crontab.
crontab-e[user]-Edit the user's current crontab crontab.
crontab-d[user]-Delete the user's current crontab.
crontab-c dir-Specify 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.
The following is an example file:
1: crontab usage: 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 and week. The file name to be executed * represents all conditions 5 * * * * rem /home/oracle/execsql represents 5 minutes of each hour. When executing the /home/oracle/execsql file
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 =$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 (execute @test1.ext file, the username/password of the database is test1/test1)
The program that requires execsql to be executable $ 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
Change it according to the following format and add it to the crontab
00 0 * * * cd /your program path;php your program name.php
This needs to be compiled with php in cli or cgi mode.
In addition:
If there is no administrative permission, 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. In the following example, after the user closes the browser, the script continues to execute on the server: