Cron Every 5 Minutes: 5, 10, and 15-Minute Crontab Examples

By 

Updated on

5 min read

Run Cron Jobs Every 5, 10 or 15 Minutes

When you need to run a script, backup, or maintenance command several times per hour, cron provides a simple recurring schedule. To run a cron job every five minutes, use this expression:

txt
*/5 * * * * command

The */5 value means every fifth minute, so the command runs at minutes 0,5,10,15 and continues through minute 55 of each hour.

This guide shows how to run cron jobs every 5, 10, or 15 minutes, verify that the schedule works, and prevent slow jobs from overlapping.

Quick Reference

For a printable quick reference, see the crontab cheatsheet .

Cron ExpressionSchedule
* * * * *Every minute
*/5 * * * *Every 5 minutes
*/10 * * * *Every 10 minutes
*/15 * * * *Every 15 minutes
*/30 * * * *Every 30 minutes
0 * * * *Every hour
0 0 * * *Every day at midnight

What */5 Means in Crontab

Each user crontab entry contains five time fields followed by the command to run:

txt
|------------- minute (0-59)
| |----------- hour (0-23)
| | |--------- day of the month (1-31)
| | | |------- month (1-12)
| | | | |----- day of the week (0-7, Sunday is 0 or 7)
* * * * * command

An asterisk matches every allowed value in a field. The slash adds a step, so */5 in the minute field selects every fifth value from 0 through 59. Step values operate only within their field. For example, */35 runs at minutes 0 and 35 of every hour, not once every 35 minutes continuously.

This article uses user crontab syntax. System files such as /etc/crontab and files in /etc/cron.d/ include an additional username field. See the full crontab scheduling guide for the complete syntax and operators.

Run a Cron Job Every 5 Minutes

The recommended expression for running a command every five minutes is:

txt
*/5 * * * * command

Replace command with the full path to the command or script you want to run. For example:

txt
*/5 * * * * /home/user/scripts/check-disk.sh

You can write the same schedule as an explicit minute list:

txt
0,5,10,15,20,25,30,35,40,45,50,55 * * * * command

Both forms produce the same schedule, but */5 is shorter and easier to maintain.

Run a Cron Job Every 10 Minutes

To run a cron job every 10 minutes, use the step operator in the minute field with a value of 10. Add the following line to your crontab file:

txt
*/10 * * * * command

*/10 evaluates to 0,10,20,30,40,50, so the job runs six times per hour.

Run a Cron Job Every 15 Minutes

To run a cron job every 15 minutes, use the step operator with a value of 15. Add the following line to your crontab file:

txt
*/15 * * * * command

*/15 evaluates to 0,15,30,45, so the job runs four times per hour.

Test a Cron Job Every 5 Minutes

Before scheduling an important command, create a small test job that writes the current date and time to a temporary log file.

Open your user crontab:

Terminal
crontab -e

Add the following entry:

txt
*/5 * * * * /usr/bin/date >> /tmp/cron-every-5-minutes.log 2>&1

Save the file, then confirm that the entry was installed:

Terminal
crontab -l

After the next five-minute boundary, check the log:

Terminal
tail /tmp/cron-every-5-minutes.log

Each successful run adds a timestamp. Cron schedules use clock boundaries, so a job saved at 10:03 runs next at 10:05, not at 10:08.

Restrict the Schedule to Certain Hours

You can combine a minute step with hour and weekday ranges. The following entry runs every five minutes from 9:00 through 17:55, Monday through Friday:

txt
*/5 9-17 * * 1-5 command

To stop after 17:00 instead, use separate entries or adjust the command logic because 9-17 includes the entire 17th hour.

Prevent Overlapping Cron Jobs

If a job takes longer than its interval, the next run can start before the previous one finishes. Use flock to allow only one instance:

txt
*/5 * * * * /usr/bin/flock -n /tmp/check-disk.lock /home/user/scripts/check-disk.sh

The -n option exits immediately when another process holds the lock. Choose a unique lock file for each job.

Troubleshooting

Cron job does not run
Confirm that the entry was saved with crontab -l, then check the service with systemctl status cron on Debian and Ubuntu or systemctl status crond on Fedora and RHEL.

Command works in the shell but fails in cron
Cron runs with a minimal environment and uses /bin/sh by default. Use absolute command and file paths, or define the required PATH and SHELL variables in the crontab.

No output appears
Cron may send output by email when a mail service is installed. During testing, redirect both standard output and errors to a log file: */5 * * * * /path/to/command >> /tmp/job.log 2>&1.

Job runs at the wrong time
Cron uses the system timezone unless your implementation supports and is configured with CRON_TZ. Check the system timezone with timedatectl.

Jobs overlap or consume too many resources
Use flock -n to prevent a new instance from starting while the previous run still holds the lock.

FAQ

How do I run a cron job every minute?
Use * * * * * command. The asterisk in the minute field matches every minute, so the job runs once per minute.

What is the difference between a step expression and an explicit minute list?
They produce the same minute schedule. The */5 step expression is shorter and easier to read.

Does the five-minute expression wait for the previous job to finish?
No. Cron runs at fixed clock times: minutes 0,5,10,15 and so on. It does not wait five minutes after the previous job finishes.

How do I run cron every 30 minutes?
Use */30 * * * * command. It runs at minute 0 and minute 30 of every hour.

Conclusion

The */N step expression is the simplest way to run cron jobs at regular minute intervals. Test new entries with a temporary log, use absolute paths, and add flock when a job may run longer than its schedule.

Tags

Linuxize Weekly Newsletter

A quick weekly roundup of new tutorials, news, and tips.

About the authors

Dejan Panovski

Dejan Panovski

Dejan Panovski is the founder of Linuxize, an RHCSA-certified Linux system administrator and DevOps engineer based in Skopje, Macedonia. Author of 800+ Linux tutorials with 20+ years of experience turning complex Linux tasks into clear, reliable guides.

View author page