Sunday, April 25, 2010

Automating Your Job, The CRON Way!

Often you require to do some stuff periodically like backups or maintenance work. It might be a bit difficult if you have to do it manually every time. You have to have a working net connection if you are doing it remotely or you need to be physically present in front of your computer system. Then you have to repeat certain tasks which you do every day. Won't it be nice if you could just put everything in a simple script that could run automatically every time. CRON comes to your rescue here. CRON is nothing but a text file consisting of the path of scripts to be executed and the time according to which it'll be executed. First of all let me tell you some of the most general commands for setting up a cron table.

crontab -e --> Edit your crontab file.
crontab -l --> Show your crontab file.
crontab -r --> Remove your crontab file.
crontab -v --> Display the last time you edited your crontab file

There is a fixed format for the way an entry has to be made in a cron file. I found an interesting way of showing it here which I am replicating.

* * * * * command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)

You can also use special entries. Below is a list for them:

Entry          Description             Equivalent To

@reboot  Run once, at startup.  None

@yearly  Run once a year  0 0 1 1 *

@annually  (same as @yearly)  0 0 1 1 *

@monthly  Run once a month  0 0 1 * *

@weekly  Run once a week  0 0 * * 0

@daily          Run once a day          0 0 * * *

@midnight  (same as @daily)  0 0 * * *

@hourly  Run once an hour  0 * * * *

A sample cron file looks like this.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.