Field-by-field breakdown
| Field | Value | Meaning |
|---|---|---|
| Minute | */45 | 0 and 45 |
| Hour | * | Every hour |
| Day of month | * | Every day of the month |
| Month | * | Every month |
| Day of week | * | Every day of the week |
Copy-paste examples
Linux crontab
# crontab -e
# */45 only matches :00 and :45 — these three lines give a true 45-minute cycle
0,45 */3 * * * /usr/local/bin/my-job.sh >> /var/log/my-job.log 2>&1
30 1-22/3 * * * /usr/local/bin/my-job.sh >> /var/log/my-job.log 2>&1
15 2-23/3 * * * /usr/local/bin/my-job.sh >> /var/log/my-job.log 2>&1
Kubernetes CronJob
apiVersion: batch/v1
kind: CronJob
metadata:
name: my-job
spec:
schedule: "*/45 * * * *"
concurrencyPolicy: Forbid
jobTemplate:
spec:
template:
spec:
restartPolicy: OnFailure
containers:
- name: my-job
image: busybox:1.36
command: ["sh", "-c", "date; echo Hello from cron"]
GitHub Actions
on:
schedule:
- cron: '*/45 * * * *' # always UTC
GitHub Actions evaluates schedules in UTC, does not accept macros such as @daily, and will not run workflows more often than every 5 minutes; runs can also be delayed during periods of high load.
Common variations
Click an expression to load it into the tool above.
| Cron expression | Schedule |
|---|---|
| At minutes 0 and 45 past the hour, every 3 hours. | |
| At 30 minutes past the hour, every 3 hours, between 1:00 AM and 10:59 PM. | |
| At 15 minutes past the hour, every 3 hours, between 2:00 AM and 11:59 PM. | |
| At 45 minutes past the hour. |
Frequently asked questions
What does */45 * * * * mean in cron?
At minutes 0 and 45 past the hour. The five fields are minute */45, hour *, day of month *, month * and day of week *.
How do I run a cron job every 45 minutes in Linux?
Run crontab -e, add the lines from the Linux crontab example on this page, then save and exit. Use absolute paths, redirect output to a log file, and confirm it runs with grep CRON /var/log/syslog.
When will */45 * * * * run next?
It depends on the current time and the time zone of the machine running cron. The calculator on this page shows the next 5 run times in your local time zone; on a server, cron uses the system time zone, which is often UTC.
How do I run a cron job exactly every 45 minutes?
Use three crontab lines that together repeat every three hours: 0,45 */3 * * * /path/to/job, 30 1-22/3 * * * /path/to/job and 15 2-23/3 * * * /path/to/job. That gives 32 evenly spaced runs a day. Alternatively, use a systemd timer with OnUnitActiveSec=45min, which measures the interval from the last run instead of from the clock.