Launch Workspace
Standard Cron · 5 fields · Linux / Unix

Cron Every Minute — * * * * *

The most frequent standard cron schedule. Runs once every minute, at the start of each minute (:00 seconds).

Dialect:
5 fields
Plain EnglishHigh Frequency (Minute)

Every minute

Runs every minute. Evaluated according to STANDARD cron specifications.

Popular Presets:

What does * * * * * mean?

In standard five-field Unix/Linux Cron syntax, each of the five * wildcards matches "every possible value" for that field. The field order is: minute (0–59) · hour (0–23) · day of month (1–31) · month (1–12) · day of week (0–7). All five wildcards together mean: at every minute, every hour, every day, every month, every day of the week — which resolves to triggering the job at the start of every single minute.

This is the maximum frequency achievable in standard 5-field cron. Sub-minute scheduling requires a different mechanism (Spring Boot's 6-field cron supports second precision via a leading seconds field, e.g. */30 * * * * * for every 30 seconds).

When to use an every-minute cron

Every-minute cron schedules are appropriate for lightweight, idempotent polling jobs: checking a message queue for new items, sending pending email notifications, refreshing a cache from a fast source, or running a health-check ping. The key constraint is that each job run must complete well within 60 seconds — if a job takes longer than the interval, the next invocation will overlap with the running one unless your scheduler enforces concurrencyPolicy: Forbid (Kubernetes) or similar protection.

For tasks that are CPU-intensive or may occasionally run longer than a minute, consider a worker queue architecture (RabbitMQ, Redis Streams, AWS SQS) instead of a high-frequency cron — this removes the concurrency risk and provides better backpressure handling.

Platform Examples for * * * * *

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 minute
* * * * * 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: "* * * * *"
  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 minute — evaluated strictly in UTC
    - cron: "* * * * *"
  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 minute
    // Spring uses 6-field cron: sec min hr dom mon dow
    @Scheduled(cron = "0 * * * * *", 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
* * * * *Every minute (all wildcards)
*/1 * * * *Every minute (explicit step — identical to above)
0-59 * * * *Every minute using a range (same result)
*/2 * * * *Every 2 minutes
*/5 * * * *Every 5 minutes
*/15 * * * *Every 15 minutes
* 9-17 * * 1-5Every minute during business hours (9–5 Mon–Fri)

Frequently Asked Questions

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

What is the cron expression for every minute?

The cron expression "* * * * *" runs every single minute. Every field is set to a wildcard (*), which means: any minute, any hour, any day of the month, any month, any day of the week.

Is running a cron job every minute a good idea?

It depends on the workload. Every-minute crons are appropriate for lightweight polling jobs (queue consumers, heartbeat checks, monitoring pings). Avoid them for heavy database operations or long-running batch jobs — use a queue or worker pattern instead.

How do I run a cron job every minute in Linux?

Add "* * * * * /path/to/script.sh" to your crontab file using "crontab -e". The first five asterisks match every minute, hour, day, month, and weekday respectively.

Does "* * * * *" work in Kubernetes CronJobs?

Yes. Kubernetes batch/v1 CronJobs use the same 5-field POSIX cron syntax. Set spec.schedule: "* * * * *" in your CronJob manifest. Note that the minimum supported interval is 1 minute — sub-minute scheduling is not supported in Kubernetes CronJobs.

How do I write "every minute" in Spring Boot?

Spring Boot uses 6-field cron with a leading second field: @Scheduled(cron = "0 * * * * *"). The leading "0" means "at second 0 of every minute". The remaining five fields (* * * * *) match every minute, hour, day, month, and weekday.

Does GitHub Actions support every-minute cron schedules?

Technically yes, but GitHub Actions documentation warns that schedules may not run on time or may be skipped under high load. GitHub also states that intervals of less than 5 minutes are prone to being throttled. For reliable minute-level scheduling, use a dedicated job scheduler instead.