DESCRIPTION
The snapshot command is a convenience frontend to mount(8) and
mdconfig(8) for the management of UFS/ZFS snapshots. It is also the
underlying tool used in the periodic snapshot scheduler
periodic-snapshot(8) and the mounting/unmouning command in the amd(8) map
/etc/amd.map.snap. It provides the making, expiring, visiting, mounting
and unmounting of filesystem snapshots.
The following global options are available:
-v Display verbose messages showing the essential system commands
involved in the operation.
-h Display a short usage help message and exit.
-d subdir
Set the subdirectory on filesystems under which snapshots are
placed. The default is the conventional .snap subdirectory
dump(8) uses, too.
The following commands are available:
snapshot list [fs ...]
List all existing snapshots on all filesystems or just the par-
ticular filesystems specified by fs. The output shows both
actual disk-space user usage ("User", "User%") and the disk-space
snapshot usage ("Snap", "Snap%").
snapshot make [-g max-generations] fs:tag[.generation]
Makes a new snapshot generation named tag on filesystem fs,
located in the file fs/subdir/tag.generation. If the generation
part is omitted, generation 0 is used. All older generations
(with numbers greater than generation) are rotated and all obso-
leted generations (with numbers greater or equal to
max-generations) are removed. Keep in mind that a maximum total
number of 20 snapshots can be created on a UFS filesystem only.
A max-generations number of 0 effectively deletes all snapshots
on filesystem fs of name tag only.
snapshot mount [-o mount-option] fs:tag[.generation] dir
Mounts the fs snapshot tag.generation (or tag.0 if generation is
omitted) under dir by attaching the snapshot file to the next
free md(4) device and mounting this device read-only onto the
target directory. If options -o are specified, they are passed-
through to mount(8).
snapshot umount dir
Unmounts a snapshot by umounting the md(4) device from dir, deat-
taching the snapshot file from the corresponding md(4) device and
deleting the device.
Filesystem User User% Snap Snap% Snapshot
/var 1172MB 14.8% 4MB 0.1% test.0
root# snapshot make -g4 /var:test
root# snapshot list /var
Filesystem User User% Snap Snap% Snapshot
/var 1176MB 14.8% 4MB 0.1% test.0
/var 1176MB 14.8% 4MB 0.1% test.1
root# snapshot make -g4 /var:test
root# snapshot list /var
Filesystem User User% Snap Snap% Snapshot
/var 1181MB 14.9% 4MB 0.1% test.0
/var 1181MB 14.9% 4MB 0.1% test.1
/var 1181MB 14.9% 4MB 0.1% test.2
root# snapshot make -g4 /var:test
root# snapshot list /var
Filesystem User User% Snap Snap% Snapshot
/var 1186MB 15.0% 4MB 0.1% test.0
/var 1186MB 15.0% 4MB 0.1% test.1
/var 1186MB 15.0% 4MB 0.1% test.2
/var 1186MB 15.0% 4MB 0.1% test.3
root# snapshot make -g4 /var:test
root# snapshot list /var
Filesystem User User% Snap Snap% Snapshot
/var 1186MB 15.0% 4MB 0.1% test.0
/var 1186MB 15.0% 4MB 0.1% test.1
/var 1186MB 15.0% 4MB 0.1% test.2
/var 1186MB 15.0% 4MB 0.1% test.3
root# snapshot mount /var:test.2 /mnt
root# ls /mnt
account cron heimdal mail opkg spool
at db lib msgs preserve tmp
backups empty log named run yp
root# snapshot umount /mnt
root# snapshot make -g0 /var:test
root# snapshot list /var
Filesystem User User% Snap Snap% Snapshot
root# _
By using an amd(8) map /usr/local/etc/amd.map.snap containing
/defaults type:=program
* mount:="/usr/local/sbin/snapshot snapshot mount /${key} ${fs}";\
unmount:="/usr/local/sbin/snapshot snapshot umount ${fs}"
and a /etc/rc.conf configuration of
amd_enable="YES"
amd_flags="-a /.am -c 1800 -w 60 -l syslog /snap /usr/local/etc/amd.map.snap"
even non-privileged users can access arbitrary snapshots
fs:tag[generation] by just accessing /snap/fs:tag[generation]. For
instance, if a snapshot hourly.2 exists on filesystem /var one can then
Man(1) output converted with
man2html