Cron alternative

Keep cron's simplicity. Add the controls production jobs need.

Dagu keeps schedules close to your scripts while adding dependency graphs, retries, logs, history, manual reruns, and a web UI.

From cron line to workflow
name: nightly-ops
schedule: "0 2 * * *"

steps:
  - name: extract
    command: python scripts/extract.py

  - name: transform
    command: ./bin/transform
    depends: extract
    retryPolicy:
      limit: 3

  - name: notify
    command: ./scripts/slack-success.sh
    depends: transform

Cron-style schedules in YAML

Step dependencies instead of shell chains

Retry failed steps without manual SSH sessions

Run history and logs in a web UI

Cron is simple until jobs depend on each other

Once a scheduled script needs retries, output capture, dependency order, or human-friendly history, cron becomes a pile of wrapper scripts.

  • Model each command as a named step.
  • Use dependencies instead of long shell chains.
  • Inspect failed output and rerun from the web UI.

No platform migration required

Dagu runs the scripts you already have. The first migration can be one nightly job, not a platform rewrite.

  • Keep existing Bash, Python, Go, Java, PHP, or Perl jobs.
  • Move schedules into versioned YAML.
  • Add timeouts and retry policies one workflow at a time.

Operational visibility by default

Dagu captures the run state that cron leaves scattered across syslog, custom files, and tribal knowledge.

  • See current status, history, and logs.
  • Trigger manual runs without logging into the host.
  • Use notifications and downstream steps for failure handling.

Cron vs. Dagu

Dimension
Dagu
Typical alternative
Dependencies
First-class step graph.
Shell chains, lock files, and wrapper scripts.
Retries
Per-step retry policies.
Custom loops or manual reruns.
Visibility
Web UI, logs, status, and history.
System logs and hand-built conventions.

FAQ

Practical questions before adopting Dagu

Can Dagu use cron syntax?

Yes. Dagu workflows can define schedules with familiar cron expressions while adding workflow-level execution state and step controls.

Do I have to rewrite cron scripts?

No. Put the existing command in a Dagu step, add a schedule, and then add dependencies, retries, and notifications as needed.

Does Dagu need Kubernetes?

No. Dagu can run as a single process on a normal machine. Distributed execution is available when you need it.

Start with one workflow.

Install Dagu, move one fragile script or agent task into YAML, and decide from a real run history.

Install Dagu