Wednesday, December 2, 2009

How can I set a cron and how can I execute it in Unix, Linux, and windows?

Cron is very simply a Linux module that allows you to run commands at predetermined
times or intervals. In Windows, it's called Scheduled Tasks. The name Cron is in fact
derived from the same word from which we get the word chronology, which means order
of time.

The easiest way to use crontab is via the crontab command.
# crontab

This command 'edits' the crontab. Upon employing this command, you will be able to
enter the commands that you wish to run. My version of
Linux uses the text editor vi. You can find information on using vi here.
The syntax of this file is very important – if you get it wrong, your crontab will not function properly. The syntax of the file should be as follows:
minutes hours day_of_month month day_of_week command
All the variables, with the exception of the command itself, are numerical constants.
addition to an asterisk (*), which is a wildcard that allows any value, the ranges permitted
for each field are as follows:
Minutes: 0-59
Hours: 0-23
Day_of_month: 1-31
Month: 1-12
Weekday: 0-6
We can also include multiple values for each entry, simply by separating each value with
a comma.
command can be any shell command and, as we will see momentarily, can also be used to
execute a Web document such as a PHP file.
So, if we want to run a script every Tuesday morning at 8:15 AM, our mycronjob file will
contain the following content on a single line:
15 8 * * 2 /path/to/scriptname
This all seems simple enough, right? Not so fast! If you try to run a PHP script in this
manner, nothing will happen (barring very special configurations that have PHP compiled
as an executable, as opposed to an Apache module). The reason is that, in order for PHP
to be parsed, it needs to be passed through Apache. In other words, the page needs to be
called via a browser or other means of retrieving
Web content. For our purposes, I'll assume that your server configuration includes wget,
as is the case with most default configurations. To test your configuration, log in to shell.
If you're using an RPM-based system (e.g. Redhat or Mandrake), type the following:
# wget help
If you are greeted with a wget package identification, it is installed in your system.
You could execute the PHP by invoking wget on the URL to the page, like so:
# wget
Now, let's go back to the mailstock.php file we created in the first part of this article. We
saved it in our document root, so it should be accessible via the Internet. Remember that
we wanted it to run at 4PM Eastern time, and send you your precious closing bell report?
Since I'm located in the Eastern timezone, we can go ahead and set up our crontab to use
4:00, but if you live elsewhere, you might have to compensate for the time difference
when setting this value.
This is what my crontab will look like:
0 4 * * 1,2,3,4,5 wget

No comments:

Post a Comment

I just got my #domain @BigRock. Get upto 25% off with my personalized coupon link Get upto 25% off