Launch Workspace
Standard Cron · 5 fields · Linux / Unix

Cron Every 5 Minutes — */5 * * * *

Runs 12 times per hour at fixed intervals: :00, :05, :10, :15, :20, :25, :30, :35, :40, :45, :50, :55.

Dialect:
5 fields
Plain EnglishPeriodic (Interval)

Every 5 minutes

Runs every 5 minutes. Evaluated according to STANDARD cron specifications.

Popular Presets:

How does */5 * * * * work?

The */5 notation in the minute field is a step expression. It means "start at 0, then every 5 values" — which generates the set {0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55} within the minute range of 0–59. The remaining four * wildcards match every hour, day, month, and weekday, so the job runs at each of those 12 minute values in every hour of every day.

A 5-minute cron is the sweet spot for near-real-time polling workloads that do not justify a persistent background worker: syncing external API data, checking for new file uploads, processing pending notifications, or updating a short-lived dashboard cache. It is also the minimum frequency recommended by GitHub Actions for reliable trigger delivery.

Step expressions vs. explicit lists

*/5 * * * * and 0,5,10,15,20,25,30,35,40,45,50,55 * * * * are semantically identical — both generate the same execution set. The step form is more concise; the list form makes the exact trigger times explicit. Use whichever is clearer for your team. Most cron implementations accept both.

Platform Examples for */5 * * * *

Ready-to-use snippets for all major platforms and schedulers.

Linux / Crontab5-field POSIX cron
# /etc/cron.d/my-schedule
MAILTO="admin@example.com"
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# Runs every 5 minutes
*/5 * * * * www-data /usr/local/bin/my-script.sh >> /var/log/my-script.log 2>&1
Kubernetesbatch/v1 CronJob manifest
apiVersion: batch/v1
kind: CronJob
metadata:
  name: my-scheduled-job
  labels:
    app: my-scheduled-job
spec:
  schedule: "*/5 * * * *"
  timeZone: "UTC"          # requires Kubernetes v1.27+
  concurrencyPolicy: Forbid
  successfulJobsHistoryLimit: 3
  failedJobsHistoryLimit: 1
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: job
            image: alpine:latest
            command:
            - /bin/sh
            - -c
            - echo "Job executed at $(date)"
          restartPolicy: OnFailure
GitHub Actionsworkflow schedule trigger (UTC only)
name: Scheduled Workflow

on:
  schedule:
    # Runs every 5 minutes — evaluated strictly in UTC
    - cron: "*/5 * * * *"
  workflow_dispatch: # allow manual trigger

jobs:
  run-job:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Run task
        run: echo "Workflow triggered at $(date)"
Spring Boot@Scheduled — 6-field cron with seconds
@Component
public class ScheduledTask {

    private static final Logger log = LoggerFactory.getLogger(ScheduledTask.class);

    // Runs every 5 minutes
    // Spring uses 6-field cron: sec min hr dom mon dow
    @Scheduled(cron = "0 */5 * * * *", zone = "UTC")
    public void runTask() {
        log.info("Scheduled job started at: {}", LocalDateTime.now());
        // your business logic here
    }
}

Common Variations

Related expressions for similar scheduling needs.

ExpressionDescription
*/5 * * * *Every 5 minutes (all day)
*/5 9-17 * * 1-5Every 5 minutes during business hours (Mon–Fri 9–5)
0,5,10,15,20,25,30,35,40,45,50,55 * * * *Every 5 minutes — explicit list form (identical result)
*/10 * * * *Every 10 minutes
*/15 * * * *Every 15 minutes
*/30 * * * *Every 30 minutes

Frequently Asked Questions

Everything you need to know about Cron expressions, syntax rules, and platform nuances.

What is the cron expression for every 5 minutes?

The cron expression "*/5 * * * *" runs at minutes 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, and 55 of every hour. The step operator */5 in the minute field means "every 5 minutes starting from 0".

Does */5 * * * * always run exactly 12 times per hour?

Yes. The step value 5 divides evenly into 60, so the schedule fires at exactly 12 fixed points per hour: :00, :05, :10, :15, :20, :25, :30, :35, :40, :45, :50, :55. This is guaranteed by the POSIX cron specification regardless of timezone (assuming the cron daemon runs continuously).

How do I run a cron job every 5 minutes in Linux?

Open your crontab with "crontab -e" and add: "*/5 * * * * /path/to/your/script.sh". The cron daemon on most Linux systems (crond, cron.d, fcron) will evaluate this every minute and execute the job when the minute value is divisible by 5.

How do I write "every 5 minutes" in Spring Boot?

In Spring Boot, use the 6-field @Scheduled annotation: @Scheduled(cron = "0 */5 * * * *"). The leading "0" is the seconds field — it fires at second 0 of every 5th minute. You can also use fixedRate = 300000 (milliseconds) for simple interval-based scheduling without cron syntax.

Can I use */5 * * * * in GitHub Actions?

Yes, and it is the minimum recommended interval. GitHub Actions documentation discourages schedules more frequent than every 5 minutes due to server load and throttling. The expression "*/5 * * * *" is evaluated in UTC and is the shortest interval reliably supported by GitHub-hosted runners.