In order to understand the syntax of a crontab job, we first need to explore and understand what a crontab job is.
A crontab is nothing but a list of commands that we can run during a cron job. A cron job is a utility that schedules automatic execution of commands at specific times.
We can start a cron job with the help of bash script by following the commands shown below −
This will open a file which you can edit, insert the cron job shell script in the above file and then close that file.
Just insert the code shown below in the above file
* * * * * sample.sh
The above command contains 5 *, where each * indicates the time and then follows the stars. We have the script which we want to run as a cron job. In the sample.sh we need to write the following command to make the environment variables available to it.
Now we understand how we can create a crontab job, it is time to understand what these * actually mean and how we can replace their values to solve our particular question.
The five * in the above command actually has a separate meaning attached to them.
These mainly mean −
Seconds: 0-59 Minutes: 0-59 Hours: 0-23 Day of Month: 1-31 Months: 0-11 Day of Week: 0-6
The Day of the Week syntax is depicted in the table shown below
0 - Sun Sunday 1 - Mon Monday 2 - Tue Tuesday 3 - Wed Wednesday 4 - Thu Thursday 5 - Fri Friday 6 - Sat Saturday 7 - Sun Sunday
It should be noted, that the number 0 and 7 both depict the day “Sunday”.
A simple example to show a cronjob that will run every sunday is shown below.
If we want to run a crontab job every Sunday, then we have three possible combinations that we can run. These are −
5 8 * * 0 5 8 * * 7 5 8 * * Sun
The 5 8 in the above crontab job command stands for the time of the day when this will happen: 8:05.
It should be noted that we need to append our script that we need to run after any of the above commands we choose.
The final command should look something like this −