Thursday, May 8, 2008

Crontab

CRONTAB



Cron is unix,solaris utility that allows tasks to be automatically run in the background
At regular intervals by the cron daemon.

Crontab is a file which contains the schedule of cron entries to be run and at specified
Times.


Crontab commands:


Crontab –e edit crontabfile

Crontab –l display current crontab entries

Crontab –r remove crontabfile

Crontab – v display the last time edited



Crontab syntax:


A crontab file has five fields for specifying day,date and time

Each line in the crontab follows the following format

* * * * *

Field meaning

1minute(0-59)

2hour(0-23)

3day of month(1 -31)

4month (1-12)

5day of week(0-6) (Sunday=0)


how to edit crontab:

1 . At the prompt type in ‘crontab –e’ .This will open crontab file when this file open you will see other cron jobs ,or if u haven’t any-you’ll see a branch of lines with ‘~’ on them.

2 .use the cursor to go down until you can’t move the cursor down any more.this is where you start your new line.press ‘o’ to insert a new line.

3. press ‘o’ to insert new line.if u want to edit line,press’I’.

4. press the ‘esc’ key to exit out of edit mode.

5. to save the changes and exit :zz
If u want to exit without saving changes:q!

6. to view the new entry in crontab file type ‘crontab-l’.this will list the contents of crontabfile.







Crontab environment:


Cron invokes the command from the user’s HOME directory with the shell

Upon the execution of a command from a crontab entry,the implementation will supply a default environment ,defining at least the following environment variables

HOME
A pathname of the user’s home directory.

LOGNAME
The users login name

PATH
A string representing a search path guaranteed to find all of the standard
Utilities.

SHELL
A pathname of the command interpreter.


Crontab example:



5,10,15,20,25,30,35,40,45,50,55 * * * * /pro.sh >> /var/log/pro.log



On the 5th minute
Every hour of the day
Every day of the month
Every month of the year
Every day of the month

It will run pro.sh


su - applprod -c 'sh fam.sh'
cp /prodapps/applprod/process.lst .
if [ `tail -1 process.lst | awk '{print $1}'` -gt 500]
then
echo "Bouncing Apache"
sh /bounce.sh


fam.sh


sqlplus -s apps/apps <set feed off
set linesize 100
set pagesize 200
spool process
SELECT count(*) from v\$process;
spool off
exit
!
if [ `tail -1 process.lst | awk '{print $1}'` -gt 500 ]
then
echo "Apache to be bounced"

once the processes reaches 500 it will bounce






Disable email:


By default cron jobs sends a email to the users account executing the cronjob. If this is not required put the following command at the end of the cronjob line.

>/var/null 2>&1


Generate log file:


To collect the cron execution execution log in a file:



>>ar/log/pro.log