% zelta-snapshot(8) | System Manager's Manual
zelta snapshot - create recursive ZFS snapshots locally or remotely
zelta snapshot [OPTIONS] endpoint[@snapshot]
zelta snapshot creates a recursive snapshot on a dataset tree. The endpoint may be local or remote via ssh(1).
As with other Zelta commands, zelta snapshot works recursively on a dataset tree. This provides a simple way to create consistent, atomic snapshots across an entire dataset hierarchy without requiring Zelta to be installed on remote systems.
Remote endpoint names follow scp(1) conventions. Dataset names follow zfs(8) naming conventions.
Examples:
Local: pool/dataset
Local: pool/dataset@my-snapshot
Remote: user@example.com:pool/dataset
Remote: user@example.com:pool/dataset@backup-2025-01-15
Endpoint Argument (Required)
endpoint
: The dataset to snapshot. If a snapshot name is specified with @snapshot, that name is used. Otherwise, the name is determined by the --snap-name option.
Output Options
-v, --verbose
: Increase verbosity. Specify once for operational detail, twice (-vv) for debug output.
-q, --quiet
: Decrease log level. Specify once to suppress notices, twice (-qq) to suppress warnings.
-n, --dryrun, --dry-run
: Display zfs commands without executing them.
Snapshot Options
--snap-name NAME
: Specify snapshot name. Use $(command) for dynamic generation. Default: $(date -u +zelta_%Y-%m-%d_%H.%M.%S). This option is ignored if a snapshot name is provided in the endpoint argument.
--snap-prefix PREFIX
: Prefix generated snapshot names. If the resolved name starts with zelta, PREFIX replaces zelta; otherwise PREFIX is prepended verbatim. This option is ignored if a snapshot name is provided in the endpoint argument.
--snap-time TIME
: Skip snapshot creation unless the newest existing snapshot is older than TIME. Bare numbers are seconds; suffixes such as h, d, w, and y are accepted.
--snap-size SIZE
: Skip snapshot creation unless the dataset tree has at least SIZE of written data since the newest existing snapshot. SIZE accepts ZFS-style byte counts and suffixes.
Dataset Options
-d, --depth LEVELS
: Limit recursion depth. For example, a depth of 1 includes only the specified dataset.
Create a snapshot with the default naming scheme:
zelta snapshot tank/data
Create a snapshot with a specific name:
zelta snapshot tank/data@before-upgrade
Create a snapshot on a remote host:
zelta snapshot backup@storage.example.com:tank/backups
Create a snapshot with a custom naming scheme:
zelta snapshot --snap-name "manual_$(date +%Y%m%d)" tank/data
Create a snapshot only when the newest existing snapshot is at least six hours old:
zelta snapshot --snap-time 6h tank/data
Dry run to preview the command:
zelta snapshot -n tank/data
Returns 0 on success, non-zero on error.
See zelta-options(7) for environment variables and zelta.env configuration.
zelta(8), zelta-options(7), zelta-backup(8), zfs(8), zfs-snapshot(8)
Daniel J. Bell <bellhyve@zelta.space>