How would I get a cron job to run every 30 minutes on Linux?

Crontab is a time-based job scheduler in Linux that allows you to automate the execution of commands, scripts, or programs at specific intervals. To create a cron job that runs every 30 minutes, you need to understand the crontab syntax and configure the appropriate time specification.

Understanding Crontab Syntax

A cron job entry consists of five time fields followed by the command to execute:

* * * * * command_to_run
| | | | |
| | | | +-- Day of Week (0-6, Sunday=0)
| | | +---- Month (1-12)
| | +------ Day of Month (1-31)
| +-------- Hour (0-23)
+---------- Minute (0-59)

Creating a Cron Job

To create or edit your crontab file, use the following command:

crontab -e

This opens your personal crontab file in the default text editor. You can then add your cron job entries and save the file.

Running Every 30 Minutes

To run a script every 30 minutes, you need to specify that the job should execute when the minute is either 0 or 30. Here's the syntax:

0,30 * * * * /path/to/your/script.sh

This cron expression breaks down as follows:

  • 0,30 − Run at minute 0 and minute 30 of every hour

  • * − Every hour (0-23)

  • * − Every day of the month (1-31)

  • * − Every month (1-12)

  • * − Every day of the week (0-6)

Alternative Approaches

You can also use the step notation to achieve the same result:

*/30 * * * * /path/to/your/script.sh

The */30 means "every 30 minutes starting from minute 0". This will run at 0, 30 minutes of every hour.

Complete Example

Here's a complete example that runs a backup script every 30 minutes:

# Run backup script every 30 minutes
0,30 * * * * /home/user/scripts/backup.sh

# Alternative using step notation
*/30 * * * * /home/user/scripts/backup.sh

Useful Crontab Commands

Command Description
crontab -e Edit the current user's crontab
crontab -l List current user's cron jobs
crontab -r Remove all cron jobs for current user
sudo crontab -u username -e Edit crontab for a specific user

Important Considerations

  • Always use absolute paths for scripts and commands in cron jobs

  • Ensure your script has executable permissions (chmod +x script.sh)

  • Consider redirecting output to a log file for debugging: command >> /var/log/cronlog 2>&1

  • Test your script manually before adding it to crontab

Conclusion

To run a cron job every 30 minutes, use the syntax 0,30 * * * * your_command or */30 * * * * your_command. Both approaches will execute your script at the top and bottom of every hour, providing automated task execution at regular 30-minute intervals.

Updated on: 2026-03-17T09:01:38+05:30

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements