Cron jobs are a way of automating tasks that you want done every week/month/day and at a certain time.
To accomplish this, you will make crontab entries on your server which will tell it when it needs to
run the command you want. Crontab entries tell the server to "run this command at this time on this date".
Using cron with AutoRank PHP will allow you to have the software rebuild the ranking pages automatically at times you
specify, and also run the account scanner automatically at the times you specify.
A crontab entry consists of two parts - a time to run, and a command to run.
The time to run (the first part of the entry) is broken up into 5 fields:
1. minute of the hour
2. hour of the day (on the 24 hour clock)
3. day of the month
4. month of the year (1 = January, 2 = February, etc.)
5. day of the week (0 = Sunday, 1 = Monday, 2 = Tuesday, ..., 6 = Saturday)
A * in one of these fields indicates that the job should be executed at any or every one of these,
so for instance a * in the month of the year field means that this task should be carried out every
month at the time specified in the other fields. A * in the day of the week field, when there is
something in the day of the month field, does not mean that this task should be carried out every day,
but rather that it should be carried out on the appointed day of the month regardless of what weekday
it is. Only *s in the day of the week field, and the day of the month field, and the month of the year
field would indicate a daily task.
In the examples, [command] represents the full path and filename of the file you want to execute.
The job with this time to run would run every Sunday at 12:20 am:
20 0 * * 0 [command]
This job would run at midnight on any Friday the 13th:
0 0 13 * 5 [command]
You don't have to put just one time in a field. This job, for instance, would run every day at 12:30am, 2:30am, 4:30am, 6:30am, 6:30pm, 8:30pm, and 10:30pm:
30 0,2,4,6,18,20,22 * * * [command]
This one would run every Tuesday and Friday at 5:30 am:
30 5 * * 2,5 [command]
Creating a File For Crontab Entries
To register the cron commands with the server, you will need to create a plain text file with a list of all of the crontab entries.
You will then use this file along with the server's crontab command to register them with the server. Once they have been registered, they can
begin executing at the time you specify.
Start with an empty text file in the text editor of your preference (we recommend
for Windows users). At the top of this file you will want to put any
already existing crontab entries that you have running on your server. If you have never used cron before, there will not be any. If you have used
cron before, you will need to login to your server through telnet or SSH and execute the crontab -l
command. This will display a list of your
existing crontab entries. Copy and paste this to the top of your text file.
Now you can start adding your AutoRank PHP crontab entries to the file. All of the available commands are covered
later in this document, so be sure to read the entire thing before setting up your cron jobs.
Once you have all of the above steps completed, you can save the file. You can name it anything you want. It is recommended that you use cron.txt for the filename,
however anything will work. To register these commands with the server, continue with the next section of this document.
Here is an example crontab entry file
for you to look at.
Registering Your Cron Commands
Once you have created the text file containing your crontab entries, you will need to register them with the server. To do this, upload the text file
to your server (for this example, assume the filename is cron.txt). A good place to upload it is the same directory where AutoRank PHP is installed.
After the cron.txt file has been uploaded, login to your server through telnet or SSH. Change into the directory where you uploaded the cron.txt file
and run the command crontab cron.txt
. This will register the crontab entries with the system, and they will begin executing at the next scheduled
time. To make sure your crontab entries were recorded properly, you can run the crontab -l
command. This will display a list of all of the current
crontab entries registered under your username.
Using the cron.php Script
To use the cron.php script your server will need to have the command line interface (cli) version of PHP installed. If you are not sure about this, contact
your server administrator and ask them if the cli version of PHP is installed on the server. You will also need to know where the cli PHP binary is located
on the server. In most cases it is in /usr/bin or /usr/local/bin
You will need to set a directory path in the cron.php file. This can be done by opening that file in a text editor and modifying the $arphp_directory setting
at the top of that file. That setting needs to point to the full directory path where AutoRank PHP is installed on your server (the directory where the cron.php
file is located). Once you have made that change, save the cron.php file and make sure the modified file has been uploaded to your server.
The cron.php script will accept one of several command line arguments that will tell it which function it should run. Each of the available command line
arguments are listed below.
--rerank - This will rerank your member accounts.
--reset - This will reset the in and out hit counts to zero.
--totalreset - This will reset the total in and total out hit counts to zero.
--backup - This will backup your member database.
--ratingreset - This will reset the ratings for all accounts back to zero.
--clearcheatlog - This will clear the cheat log
--clearcheattally - This will reset the cheat tallies for all accounts to zero.
--clearmemberstats - This will clear the historical member stats from the database.
--removeunconfirmed - This will remove unconfirmed accounts older than 4 days.
--optimizedatabase - This will repair any damage to and optimize the database
--clearips - This will clear the hit tracking and rating tracking IP logs
For example, if you wanted to rerank your member accounts every 30 minutes, you would use the following crontab entry:
15,45 * * * * /path/to/php /full/directory/path/to/cron.php --rerank
Note that the /full/directory/path/to/ portion would be replaced with the directory path on your server to the directory where the cron.php script is
located and /path/to/php would be replaced with the location of the cli version of PHP on your server.