Scheduling Cron Jobs with Crontab

Cron is a daemon that executes processes on the operating system based on a scheduled time. These processes are associated with a Crontab program which allows the scheduling of these processes. It has various applications, such as updating security patches, reminders of specific tasks, and scheduling mail to other users.

The objective of this article is to schedule cron jobs with the Crontab. The content that illustrates this article is mentioned-below:

Let’s get into the basics of this post.

How to Schedule Cron Jobs in the Crontab File?

To schedule a cron job using crontab, first, create a crontab file that specifies the commands to run and the scheduled tasks.

Create a Crontab File

To create a crontab file for a user’s cron jobs, open a terminal window and execute the below script:

$  crontab -e

After pressing 1, it opens the crontab file in a nano editor. Add your cron job(s) to the file. In the crontab file, every line refers to a separate cron job. The format for a cron job is as follows:

The asterisks represent the schedule, with the following meaning:

  • The first asterisk represents the minute (from 0 to 59).
  • The second asterisk represents the hour (from 0 to 23).
  • The third asterisk represents the month day (from 1 to 31).
  • The fourth asterisk represents the month (from 1 to 12).
  • The fifth asterisk represents the weekday (from 0 to 6,).

Different options that manipulate the “crontab” file are provided below:

crontab -l: To view your current crontab file

crontab -i: Remove your crontab file with a prompt

crontab -e: To create a crontab file

crontab -r: Delete your crontab file

Here are some examples of cron job schedules and the commands:

Example 1: Scheduling Cron Jobs At Every Minute

To run a command every minute, a script is written here that displays a message “Itslinuxfoss World”. Additionally, the built-in utility “date” is used that returns the current date and time after executing the “test.txt” file:

* * * * * echo "Itslinuxfoss World $(date)" >> $HOME/test.txt

Save the “crontab” file using “Ctrl+S” and close it through the “Ctrl+X” shortcut.

Verify the Scheduled Cron Jobs

To verify the cron jobs that will execute every minute, specify the name of the file “test.txt” with the “cat” command: 

$ cat test.txt

The output shows that cron jobs are executed every minute.

Note: For more details on creating a Cron job at every minute, navigate to the link.

Example 2: Scheduling Cron Jobs At Every Hour

To run a command at the beginning of every hour, specify the “0” at the most left place:

$ 0 * * * * echo "Itslinuxfoss World $(date)" >> $HOME/test.txt

The scheduled cron job will execute at every hour.

Example 3: Scheduling Cron Jobs At Every Midnight

For running a command every day at the time of midnight, put the below code in the “crontab” file. It prints out the “itslinuxfoss World” message with the current date and time:

$ 0 0 * * * echo "Itslinuxfoss World $(date)" >> $HOME/test.txt

Example 4: Scheduling Cron Jobs at 3:00 am on Monday

To run a command every week at 3:00 am on Monday, the second asterisk and last asterisk replace with the 3 and 1 as below:

$ 0 3 * * 1 echo "Itslinuxfoss World $(date)" >> $HOME/test.txt

The output returns the message at 3:00 am on Monday.

Example 5: Scheduling Cron Jobs At Every Month

To run a command every month on the first day at 5:00 am, replace the third asterisk with the date of the month for execution:

$ 0 5 1 * * echo "Itslinuxfoss World $(date)" >> $HOME/test.txt

The above script will execute the cron jobs on the first day of every month at 5:00 am.

Note: Click the link for detailed information on cron jobs with crontab.

Conclusion

In the crontab file, the cron jobs are scheduled following the five asterisks pattern. Each asterisk represents a unit of time (minute, hour, month, day, month, weekday). This guide has explained multiple examples to schedule cron jobs with crontab.