How to Schedule Cron Job Every 15 Minutes from 06:05 to 22:05

cron

I need to run a cron job every 15 minutes starting at 06:05 and ending at 22:05.

0 5/15 6-22 * * *

The following syntax includes 22:35 and 22:50.

Any idea how to achieve this? Is this possible with one line or do I need to configure multiple?

Best Answer

It is possible with one cronline but only with tricks

SHELL=/bin/bash
5-50/15 6-22 * * * [[ '2220 2235 2250' =~ "$(date +\%H\%M)" ]] || /path/to/script

Or with sh (and bash)

SHELL=/bin/sh
5-50/15 6-22 * * * case "$(date +\%H\%M)" in 2220|2235|2250) ;; *) /path/to/script;;esac

Note the backslash escapes for percent (%) characters, needed for crontabs.