Scheduling your first task
A task is a shell command that RunWisp starts on a schedule, or when you ask,
and that exits when it’s done. Open the runwisp.toml from
Installation and replace [tasks.hello] with
your own job:
[tasks.backup-db]cron = "0 2 * * *" # every day at 02:00on_overlap = "skip" # skip a run if the last one is still goingkeep_runs = 30 # keep the last 30 runs in the historyrun = "pg_dump mydb | gzip > /backups/mydb-$(date +%F).sql.gz"cron is the usual five-field expression, in the host’s timezone. run goes
to a shell, so pipes and $(...) work like they do in your terminal.
Apply the change
Section titled “Apply the change”runwisp validaterunwisp reloadvalidate checks the file and starts nothing. reload gives the file to the
running daemon, which starts the schedule. If the file has an error, the reload
is rejected and the daemon keeps running what it had.
Run it now
Section titled “Run it now”You don’t have to wait for 02:00:
runwisp run backup-dbThe output streams to your terminal, and the command exits with the task’s exit code. The run lands in the history like a scheduled one. In the TUI, the same thing is r on the task; in the Web UI, the Run now button.
Read its output
Section titled “Read its output”runwisp logs backup-dbEvery run keeps its output, exit code, start time, and duration. In the Web UI, click the task to see its runs, and click a run to read its log. See Web UI and TUI.
Next steps
Section titled “Next steps”- Timezones, catching up after downtime, and spreading out start times are in Scheduling.
- What happens when a run is still going at the next start time is in Overlapping runs.
- Every key a task accepts is in the
[tasks.*]reference.