Automating Tasks with Cron Advanced Usage

By Jennifer Mathew

Updated on May 11, 2024

In this tutorial, we'll discuss about automating tasks with Cron advanced usage. Cron is a time-based job scheduler that allows users to schedule tasks to run periodically at fixed times.

Prerequisites:

Before proceeding with this tutorial, you should have a basic understanding of the Linux command line interface and familiarity with Cron concepts. 

Overview of Cron:

Cron is a time-based job scheduler in Unix-like operating systems, including Linux. It allows users to schedule tasks (commands or scripts) to run periodically at fixed times, dates, or intervals. These tasks can include system maintenance, backups, updates, or any other repetitive operations needed for the system's functioning.

Crontab, short for "cron table," is a configuration file used by the cron daemon to specify the schedule for executing these tasks. Each user on a Unix-like system can have their own crontab file, which contains a list of commands or scripts to be executed and the schedule at which they should run. The cron daemon reads these crontab files and executes the scheduled tasks accordingly.

The crontab file follows a specific syntax, where each line represents a separate cron job. Each line consists of five fields representing the schedule (minute, hour, day of the month, month, day of the week) followed by the command to be executed. The crontab file can be edited using the crontab command or by directly modifying the system crontab files located in /etc/cron.d/, /etc/cron.daily/, /etc/cron.hourly/, etc.

Users can edit their crontab files using the crontab command-line utility, which provides options for creating, editing, listing, and removing cron jobs. Additionally, system-wide cron jobs can be defined in system directories like /etc/cron.d/, /etc/cron.daily/, and others, allowing administrators to schedule tasks that apply to the entire system.

Advanced Cron Scheduling:

Exampe 1: Running a Script Every Hour

0 * * * * /path/to/script.sh

This cron job executes the script /path/to/script.sh every hour at minute 0.

Exampe 2: Running a Command on Specific Days of the Week

0 0 * * 1,3,5 /path/to/command

This cron job runs the command /path/to/command at midnight on Mondays, Wednesdays, and Fridays.

Exampe 3: Running a Command Every 15 Minutes

*/15 * * * * /path/to/command

This cron job executes the command /path/to/command every 15 minutes.

Exampe 4: Managing Cron Jobs:

Editing Cron Jobs

Use the crontab -e command to edit cron jobs:

crontab -e

This opens the default text editor to edit the user's crontab file.

Exampe 5: Listing Cron Jobs

Use the crontab -l command to list cron jobs:

crontab -l

This displays the current user's cron jobs.

Exampe 6: Removing Cron Jobs

Use the crontab -r command to remove all cron jobs:

crontab -r

This removes all cron jobs for the current user.

Conclusion:

We have seen automating tasks with Cron advanced usage. Cron is indispensable tool for automating tasks in Linux environments. By mastering their advanced usage, system administrators can efficiently schedule and manage repetitive tasks, ensuring the smooth operation of their systems.