Sunday, December 20, 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. In 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 http://www.example.com/file.php
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 we get http://www.example.com/mailstock.php

No comments:

Post a Comment

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