Ensure the backup connection to the SSH server can't do anything other
than designed. Uses ssh's authorized_keys command= statement to launch
backup-zfs-shell, which then supports only the handful of operations
required to perform backups.
$destpath is no longer used, but still included in the documentation
until it can be entirely written out.
Turn backup-zfs into a two-step process:
1. Send snapshots to a server over SSH
2. Receive those snapshots over SSH
Supports a disconnected backup environment where the backup storage host
and the system being backed up don't have to be online at the same time.
Use case: Send snapshots from my home server to my work server while I'm
asleep, then read them over the LAN from my work server to my external
drive while I'm at work.
Previously we looked for the specific tagged snapshot, but that doesn't
actually work properly. Now simply find the most recent snapshot on dest
and compare to src. It must exist on src.
Execution should not continue upon failure of certain zfs commands. In
particular, cleanup/rotation of the oldest snapshots will no longer
occur upon a failure to send/receive.
Change zfs receive command to use -e (was -d).
Allow greater control of dest placement. srcpool/a/really/long/path
should not force me to deal with destpool/backupdest/a/really/long/path.
* supports either local or remote usage
* always uses sudo
* getopts for a few settings
* keeps its own snapshots for send/recv purposes, independent of others