Jul 20, 2023

Portable performant script to make rolling ZFS snapshots easy

zfsnap makes rolling ZFS snapshots easy and - with cron - automatic.

The main advantages of zfsnap are its portability, simplicity, and performance. It is written purely in /bin/sh and does not require any additional software - other than a few core *nix utilies.

zfsnap stores all the information it needs about a snapshot directly in its name; no database or special ZFS properties are needed. The information is stored in a way that is human readable, making it much easier for a sysadmin to manage and audit backup schedules.

Snapshot names are in the format of pool/fs@[prefix]Timestamp–TimeToLive e.g. pool/fs@weekly-2014-04-07_05.30.00–6m. The prefix is optional but can be quite useful for filtering, Timestamp is the date and time when the snapshot was created, and TimeToLive TTL is the amount of time the snapshot will be kept until it can be deleted.

Checkout these related ports:
  • Zxfer - Easily and reliably transfer ZFS filesystems
  • Ztop - Display ZFS dataset I/O in real time
  • Zsm - ZFS Snapshot Manager
  • Zsd - Destroys ZFS snapshots
  • Zrepl - ZFS dataset replication tool
  • Zrep - ZFS based replication and failover solution
  • Zpool-iostat-viz - ZFS pool I/O latency statistics
  • Zoxide - Fast cd alternative that learns your habits
  • Zogftw - Creates redundant backups on encrypted ZFS pools
  • Znapzend - ZFS-centric backup tool
  • Zisofs-tools - User utilities for zisofs
  • Zidrav - File corruption detection and repair program
  • Zfstools - OpenSolaris-compatible auto snapshotting for ZFS
  • Zfsnap - Simple sh script to make zfs rolling snaphosts with cron
  • Zfs-stats - Display human-readable ZFS statistics