crontool
Paste a schedule, read it in English, see the next runs.

Running a Compiled Rust Binary with Cron

A compiled Rust binary needs no runtime — just give cron the absolute path (e.g. `/opt/app/target/release/mytask`). `cd` first only if it reads relative files, and export any env vars it expects.

The crontab line

0 4 * * * /opt/app/target/release/mytask >> /var/log/mytask.log 2>&1

There is no interpreter to source — a release build is a self-contained executable. Point cron straight at it.

Environment variables

Cron starts with an almost-empty environment. If your program reads config via env::var (database URLs, API keys), set them in the crontab: 0 4 * * * DATABASE_URL=postgres://... /opt/app/target/release/mytask.

Working directory

If the binary opens files by relative path (a .env or data file), cd into its directory first: cd /opt/app && ./target/release/mytask.

FAQ

How do I run a Rust program from cron?

Build with cargo build --release and point cron at the binary: 0 4 * * * /opt/app/target/release/mytask. No runtime needed.

Why can't my Rust cron job find its environment variables?

Cron doesn't load your shell profile. Set the vars inline in the crontab line or load a .env from the working directory.

Should I use the debug or release binary in cron?

Use target/release (built with cargo build --release) — it's optimized and the path is stable for scheduled runs.