Tuesday, 17 July 2012

Crontab With Examples.

Cron is a Unix , Linux utility that allows tasks to be automatically run in the background at regular intervals by the cron daemon. These tasks are called cron jobs. Crontab is a file which contains the schedule cron jobs to be run at specified times.
A crontab file contains entries for each cron job. Each crontab file entry contains six fields separated by spaces or tabs and crontab Entries Format are as below:
Minute Hour Day_of_Month Month Weekday Command
These fields accept the following values:
1 Minute 0 through 59
2 Hour 0 through 23
3 Day_of_month 1 through 31
4 Month 1 through 12
5 Weekday 0 through 6 for Sunday through Saturday
6 Command a shell command
How to view crontab entry?
To view the crontab entries type crontab –l . By default this will show the current logged-in user crontab.
crontab –l
To view your crontab entries of other user account. Loing as root and then type
crontab –u <user id> -l
[root@webmanual01 ~]# crontab -u abisharm -l
0 12 * * * /usr/bin/errclear -d H 90
How to edit crontab entries?
To edit a crontab entries, type crontab -e as shown below. By default this will edit the current logged-in user crontab.
[abisharm@webmanual01 ~]$ crontab -e
0 12 * * * /usr/bin/errclear -d H 90
This will open the crontab file in Vi editor for editing. When we edit crontab it created a temporary crontab /tmp/crontab.XXXXb51qgK. When we save the temporary file with :wq!, it will save the crontab and display the below message
[abisharm@webmanual01 ~]$ crontab -e
crontab: installing new crontab
[abisharm@webmanual01 ~]$
Note : The above message will not show in AIX
How to verify who all users have cron jobs on a system?
When you finish creating entries and exit the file, the crontab command copies it into the /var/spool/cron/crontabs in AIX (/var/spool/cron in Linux) directory and places it in a file named for your current user name. If a file with your name already exists in the crontabs directory, the crontab command overwrites it.
In the below example only user abisharm has cron jobs in that particular system
[root@webmanual01 cron]# ls -l
total 4
-rw------- 1 abisharm root 37 Jan 30 06:38 abisharm
[root@webmanual01 cron]#
How to run a script called maintenance every day at midnight in August?
0 0 * 8 * /home/abinash/bin/maintenance
The above crontab entry  run the script /home/abinash/bin/maintenance on midnight 0:0 hr in the 8th month means August.
How to define text for the standard input to a command in crontab ?
0 0 25 12 /usr/sbin/wall%HAPPY HOLIDAY!%
The text following the % (percent sign) defines the standard input to the wall command. So on 25th of December at 0:0 midnights we will see HAPPY HOLIDAY!
How to installing crontab from other user id?
We can copy crontab of other user to root user by just typing command crontab <user id> . We can upload or install cron as shown below.
[root@webmanual01 cron]# crontab abisharm
[root@webmanual01 cron]# crontab -l
0 12 * * * /usr/bin/errclear -d H 90
How to load crontab from a file?
Instead of manually editing the crontab to add new jobs, we can also install cron jobs from a file. This is helpful when we have to maintain lot of servers that has the same cron job entries.
Below are the steps
Step 1 : create a file /home/root/cronjobs.txt with all the cron jobs.
Step 2: Installed the cronjobs.txt jobs to current user crontab , type
crontab /home/root/cronjobs.txt
Step 3: Verify the crontab with crontab –l command
Some Other Options :
* It is a wild card. Meaning any possible value.
*/2 it is  treated as ever 2 minutes, hours, days, or months.
9-17 Treats for any value between 9 and 17. So if placed in day of month this would be days 9 through 17. Or if put in hours it would be between 9 and 5.
 
 * Source Article from : Internet