Overview
A backup job runs the same backup automatically on a schedule. Define which workloads to back up, when to run, and how long to keep each generation. The standard pattern for production workloads is daily incremental + weekly full with the daily run feeding the weekly chain. This page covers creating a job, the retention window syntax, and tuning the schedule for compliance windows.Prerequisites
- An active Polystack account with project membership
- A datastore your project can write to
- Workloads identified for protection
Recommended Retention Pattern
The pattern below satisfies the standard compliance retention model: 7 days of daily incrementals on the Primary DC, 3 weeks of weekly fulls on the Primary DC, and 52 weeks of weekly archival fulls on the Backup site.Daily Incremental
Schedule: 02:00 daily — Retention:
keep-daily=7 — Target: Primary DC
datastore. Only changed blocks are uploaded; runs complete in minutes for
most workloads.Weekly Full
Schedule: Sunday 03:00 — Retention:
keep-weekly=3 — Target: Primary DC
datastore. Forms the base of the next incremental chain.Weekly Archival
Schedule: Sunday 04:30 — Retention:
keep-weekly=52 — Target: Backup site
datastore. Replicated from Primary DC by a sync job (administrator).Create a Daily Incremental Job
- Dashboard
- CLI
Select sources
Add the workloads to back up. Use the Include and Exclude filters
to scope by name, tag, or project.
Set the schedule
Set Schedule to
02:00. The schedule field accepts systemd-style
expressions — see the syntax table below.Configure retention
Open the Retention section and set
keep-daily=7. The Prune Simulator
preview shows which generations the job would keep.Enable notifications
Add the project notification group. The job sends success and failure
alerts to the configured recipients.
Create a Weekly Full Job
- Dashboard
- CLI
Use the same flow as the daily job, with these differences:
| Field | Value |
|---|---|
| Name | weekly-prod-full |
| Schedule | Sun 03:00 |
| Mode | Full |
| Retention | keep-weekly=3 |
Schedule Syntax
Schedules use a calendar event syntax similar to systemd OnCalendar.| Expression | Meaning |
|---|---|
02:00 | Every day at 02:00 |
*-*-* 02:00 | Every day at 02:00 (explicit form) |
Mon..Fri 18:00 | Every weekday at 18:00 |
Sun 03:00 | Every Sunday at 03:00 |
*-*-01 03:00 | The first day of every month at 03:00 |
hourly | Every hour, top of the hour |
daily | Every day at midnight |
weekly | Every Monday at midnight |
Retention Windows
| Window | Behaviour |
|---|---|
keep-last=N | Keep the N most recent snapshots regardless of age |
keep-hourly=N | Keep the most recent snapshot for each of the last N hours |
keep-daily=N | Keep the most recent snapshot for each of the last N days |
keep-weekly=N | Keep the most recent snapshot for each of the last N weeks |
keep-monthly=N | Keep the most recent snapshot for each of the last N months |
keep-yearly=N | Keep the most recent snapshot for each of the last N years |
keep-daily=7, keep-weekly=4, keep-monthly=12 retains the last 7 days, plus one snapshot per week for 4 weeks,
plus one snapshot per month for 12 months — using the same underlying chunks
through deduplication.
Trigger a Job Manually
- Dashboard
- CLI
From Jobs, select the job and click Run Now. The schedule resumes
afterward — the manual run does not skip the next scheduled run.
Job Notifications
Configure notification mode to control alerting volume:| Mode | Sends notification when |
|---|---|
always | Every run (success and failure) |
errors | Only when the run fails |
never | No notifications |
Job Lifecycle
Next Steps
Monitoring Jobs
Track active and historical job runs
Restore Options
Restore from any backup created by the job
Retention Policies
Administrator view of retention and pruning behaviour
Replication and Sync
How weekly backups reach the Backup site
