Copies of data are good. Especially if on a different host. zfs snapshots combined with zfs send | zfs recv make replication of zfs file systems especially easy. I am already using sanoid to manage zfs snapshots. Now I’m going to use syncoid to transfer those snapshots to another host. Both sanoid and syncoid are provided by the sanoid package on FreeBSD. I’m sure any other packaging system does similar.
In this post:
- FreeBSD 13.1-RELEASE
- sanoid-2.1.0
- zfs-2.1.4-FreeBSD_g52bad4f23
- zfs-kmod-2.1.4-FreeBSD_g52bad4f23
… not that the last two items matter much for this solution.
Update 2023-02-20 : I really should put command restrictions in the ~/.ssh/authorized_keys files.
Getting started
From https://bsd.network/web/@mikael@hachyderm.io/109558914891433862
On both hosts, create a new user: syncoid – easy to know what that user does. For tasks with special purposes, I like to use dedicated users instead of my own user login, which has additional permissions not required for the task.
NOTE: I originally created system/backups-by-snapshot/syncoid and then hit an error (you’ll see it way far below). That’s when I destroyed it and created system/backups-by-snapshot/syncoid instead. I did a find/replace on this text, but there might be lingering inconsistencies. For that, I apologize.
Receiving host
On the host to receive backups :
[knew dan ~] % sudo zfs create system/backups-by-snapshot/syncoid
NOTE: For my situation, I am making use of syncoid‘s use of sudo. To get there, I went through a trial-and-error series. This came to light in a reddit post. If using delegation, then this command is needed:
[knew dan ~] % sudo zfs allow -u syncoid create,mount,receive system/backups-by-snapshot/syncoid
Later, when invoking syncoid, I could use the –no-privilege-elevation argument to avoid invoking sudo. I went with the sudo option.
Sending host
On the host with data to be backed up:
[slocum dan ~] % sudo zfs allow -u syncoid send,snapshot system/vm/hass
Trial and error starts here
WARNING: this post has a lot of repetitive and boring back & forth while I work out the sudo permissions required for this task. You can skip past that with this link.
First attempt:
[syncoid@slocum ~]$ syncoid --sshkey=~syncoid/.ssh/id_ed25519 -r --no-sync-snap --compress=lzo --quiet syncoid@slocum.example.org:system/vm/hass system/backups-by-snapshot/syncoid Sorry, try again. Sorry, try again. WARN: ZFS resume feature not available on source and target machine - sync will continue without resume support. Sorry, try again. Sorry, try again. sudo: 3 incorrect password attempts CRITICAL ERROR: no datasets found at /usr/local/bin/syncoid line 155. [syncoid@slocum ~]$
Over on the other server, I see
Dec 22 20:53:18 slocum sshd[81151]: Accepted publickey for syncoid from 2001:470:[redacted] port 44679 ssh2: ED25519 SHA256:dWlFwnmLIddJLGsbe3QPiTYMBi257cgtGVNEJDvjTPY Dec 22 20:53:18 slocum sudo[81187]: pam_ssh_agent_auth: Failed Authentication: `syncoid' as `syncoid' using /home/syncoid/.ssh/authorized_keys Dec 22 20:53:18 slocum syslogd: last message repeated 2 times Dec 22 20:53:18 slocum sudo[81187]: syncoid : user NOT in sudoers ; PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zpool get -o value -H feature@extensible_dataset system Dec 22 20:53:18 slocum sudo[81194]: pam_ssh_agent_auth: Failed Authentication: `syncoid' as `syncoid' using /home/syncoid/.ssh/authorized_keys Dec 22 20:53:18 slocum syslogd: last message repeated 2 times Dec 22 20:53:18 slocum sudo[81194]: syncoid : user NOT in sudoers ; TTY=pts/3 ; PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zpool get -o value -H feature@extensible_dataset system Dec 22 20:53:18 slocum sudo[81203]: pam_ssh_agent_auth: Failed Authentication: `syncoid' as `syncoid' using /home/syncoid/.ssh/authorized_keys Dec 22 20:53:18 slocum syslogd: last message repeated 2 times Dec 22 20:53:18 slocum sudo[81203]: syncoid : user NOT in sudoers ; PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs list -o name,origin -t filesystem,volume -Hr system/vm/hass Dec 22 20:53:18 slocum sshd[81166]: Received disconnect from 2001:470:[redacted] port 44679:11: disconnected by user Dec 22 20:53:18 slocum sshd[81166]: Disconnected from user syncoid 2001:470:[redacted] port 44679
Looks like i need some sudo permissions over there. I added this to /usr/local/etc/sudoers.d/syncoid.
syncoid ALL=(ALL) NOPASSWD:/sbin/zpool get -o value -H feature@extensible_dataset system syncoid ALL=(ALL) NOPASSWD:/sbin/zfs list -o name,origin -t filesystem,volume -Hr system/vm/hass
Trying the command again, I see:
Dec 22 20:58:59 slocum sudo[95645]: syncoid : /usr/local/etc/sudoers.d/syncoid:2:53: syntax error Dec 22 20:58:59 slocum sudo[95645]: syncoid : PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zpool get -o value -H feature@extensible_dataset system Dec 22 20:58:59 slocum sudo[95653]: syncoid : /usr/local/etc/sudoers.d/syncoid:2:53: syntax error Dec 22 20:58:59 slocum sudo[95653]: pam_ssh_agent_auth: Failed Authentication: `syncoid' as `syncoid' using /home/syncoid/.ssh/authorized_keys Dec 22 20:58:59 slocum syslogd: last message repeated 2 times Dec 22 20:58:59 slocum sudo[95653]: syncoid : command not allowed ; PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs list -o name,origin -t filesystem,volume -Hr system/vm/hass
Those commas need to be escaped:
syncoid ALL=(ALL) NOPASSWD:/sbin/zfs list -o name\,origin -t filesystem\,volume -Hr system/vm/hass
Now they parse:
[slocum dan /usr/local/etc/sudoers.d] % sudo visudo -cf /usr/local/etc/sudoers.d/syncoid /usr/local/etc/sudoers.d/syncoid: parsed OK
Repeating the command:
[syncoid@knew ~/.ssh]$ syncoid --sshkey=~syncoid/.ssh/id_ed25519 -r --no-sync-snap --compress=lzo --quiet syncoid@slocum.example.org:system/vm/hass system/backups-by-snapshot/syncoid Sorry, try again. Sorry, try again. WARN: ZFS resume feature not available on target machine - sync will continue without resume support. ERROR: Sorry, try again. Sorry, try again. sudo: 3 incorrect password attempts
this is what I see:
Dec 22 21:07:20 slocum sudo[48675]: syncoid : PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zpool get -o value -H feature@extensible_dataset system Dec 22 21:07:20 slocum sudo[48677]: syncoid : PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs list -o name,origin -t filesystem,volume -Hr system/vm/hass Dec 22 21:07:20 slocum sudo[48679]: pam_ssh_agent_auth: Failed Authentication: `syncoid' as `syncoid' using /home/syncoid/.ssh/authorized_keys Dec 22 21:07:20 slocum syslogd: last message repeated 2 times Dec 22 21:07:20 slocum sudo[48679]: syncoid : command not allowed ; PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs get -H syncoid:sync system/vm/hass
I added a new command to /usr/local/etc/sudoers.d/syncoid. Note the : is escaped.
syncoid ALL=(ALL) NOPASSWD:/sbin/zfs get -H syncoid\:sync system/vm/hass
Time to try again:
[syncoid@knew ~/.ssh]$ syncoid --sshkey=~syncoid/.ssh/id_ed25519 -r --no-sync-snap --compress=lzo --quiet syncoid@slocum.example.org:system/vm/hass system/backups-by-snapshot/syncoid Sorry, try again. Sorry, try again. WARN: ZFS resume feature not available on target machine - sync will continue without resume support. Sorry, try again. Sorry, try again. snapshot listing failed, trying fallback command at /usr/local/bin/syncoid line 1606. bash: line 1: syncoid@slocum.example.org: command not found CRITICAL ERROR: snapshots couldn't be listed for system/vm/hass (exit code 32512) at /usr/local/bin/syncoid line 1610. [syncoid@knew ~/.ssh]$
With this on the other server:
Dec 22 21:15:10 slocum sudo[66944]: syncoid : PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zpool get -o value -H feature@extensible_dataset system Dec 22 21:15:10 slocum sudo[66949]: syncoid : PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs list -o name,origin -t filesystem,volume -Hr system/vm/hass Dec 22 21:15:10 slocum sudo[66951]: syncoid : PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs get -H syncoid:sync system/vm/hass Dec 22 21:15:10 slocum sudo[66953]: pam_ssh_agent_auth: Failed Authentication: `syncoid' as `syncoid' using /home/syncoid/.ssh/authorized_keys Dec 22 21:15:10 slocum syslogd: last message repeated 2 times Dec 22 21:15:10 slocum sudo[66953]: syncoid : command not allowed ; PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs get -Hpd 1 -t snapshot guid,creation system/vm/hass
Another command to permit, with a comma to escape:
syncoid ALL=(ALL) NOPASSWD:/sbin/zfs get -Hpd 1 -t snapshot guid\,creation system/vm/hass
One more time:
[syncoid@knew ~/.ssh]$ syncoid --sshkey=~syncoid/.ssh/id_ed25519 -r --no-sync-snap --compress=lzo --quiet syncoid@slocum.example.org:system/vm/hass system/backups-by-snapshot/syncoid Sorry, try again. Sorry, try again. WARN: ZFS resume feature not available on target machine - sync will continue without resume support. Sorry, try again. Sorry, try again. Sorry, try again. Sorry, try again. sudo: 3 incorrect password attempts Sorry, try again. Sorry, try again. sudo: 3 incorrect password attempts CRITICAL ERROR: ssh -i ~syncoid/.ssh/id_ed25519 -S /tmp/syncoid-syncoid@slocum.example.org-1671743927 syncoid@slocum.example.org 'sudo zfs send '"'"'system/vm/hass'"'"'@'"'"'autosnap_2022-12-13_00:03:00_daily'"'"' | lzop | mbuffer -q -s 128k -m 16M 2>/dev/null' | mbuffer -q -s 128k -m 16M 2>/dev/null | lzop -dfc | sudo zfs receive -F 'system/backups-by-snapshot/syncoid' failed: 256 at /usr/local/bin/syncoid line 492. [syncoid@knew ~/.ssh]$
with:
Dec 22 21:18:47 slocum sudo[75695]: syncoid : PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zpool get -o value -H feature@extensible_dataset system Dec 22 21:18:47 slocum sudo[75697]: syncoid : PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs list -o name,origin -t filesystem,volume -Hr system/vm/hass Dec 22 21:18:47 slocum sudo[75700]: syncoid : PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs get -H syncoid:sync system/vm/hass Dec 22 21:18:47 slocum sudo[75705]: syncoid : PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs get -Hpd 1 -t snapshot guid,creation system/vm/hass Dec 22 21:18:47 slocum sudo[75709]: pam_ssh_agent_auth: Failed Authentication: `syncoid' as `syncoid' using /home/syncoid/.ssh/authorized_keys Dec 22 21:18:47 slocum syslogd: last message repeated 2 times Dec 22 21:18:47 slocum sudo[75709]: syncoid : command not allowed ; PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs send -nvP system/vm/hass@autosnap_2022-12-13_00:03:00_daily Dec 22 21:18:47 slocum sudo[75711]: pam_ssh_agent_auth: Failed Authentication: `syncoid' as `syncoid' using /home/syncoid/.ssh/authorized_keys Dec 22 21:18:47 slocum syslogd: last message repeated 2 times Dec 22 21:18:47 slocum sudo[75711]: syncoid : command not allowed ; PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs send system/vm/hass@autosnap_2022-12-13_00:03:00_daily
Are you still reading? One more time:
[syncoid@knew ~/.ssh]$ syncoid --sshkey=~syncoid/.ssh/id_ed25519 -r --no-sync-snap --compress=lzo --quiet syncoid@slocum.example.org:system/vm/hass system/backups-by-snapshot/syncoid Sorry, try again. Sorry, try again. WARN: ZFS resume feature not available on target machine - sync will continue without resume support. Sorry, try again. Sorry, try again. Sorry, try again. Sorry, try again. sudo: 3 incorrect password attempts Sorry, try again. Sorry, try again. sudo: 3 incorrect password attempts CRITICAL ERROR: ssh -i ~syncoid/.ssh/id_ed25519 -S /tmp/syncoid-syncoid@slocum.example.org-1671744031 syncoid@slocum.example.org 'sudo zfs send '"'"'system/vm/hass'"'"'@'"'"'autosnap_2022-12-13_00:03:00_daily'"'"' | lzop | mbuffer -q -s 128k -m 16M 2>/dev/null' | mbuffer -q -s 128k -m 16M 2>/dev/null | lzop -dfc | sudo zfs receive -F 'system/backups-by-snapshot/syncoid' failed: 256 at /usr/local/bin/syncoid line 492.
Dec 22 21:20:32 slocum sudo[79758]: syncoid : PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zpool get -o value -H feature@extensible_dataset system Dec 22 21:20:32 slocum sudo[79761]: syncoid : PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs list -o name,origin -t filesystem,volume -Hr system/vm/hass Dec 22 21:20:32 slocum sudo[79772]: syncoid : PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs get -H syncoid:sync system/vm/hass Dec 22 21:20:32 slocum sudo[79776]: syncoid : PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs get -Hpd 1 -t snapshot guid,creation system/vm/hass Dec 22 21:20:32 slocum sudo[79781]: syncoid : PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs send -nvP system/vm/hass@autosnap_2022-12-13_00:03:00_daily Dec 22 21:20:32 slocum sudo[79785]: pam_ssh_agent_auth: Failed Authentication: `syncoid' as `syncoid' using /home/syncoid/.ssh/authorized_keys Dec 22 21:20:32 slocum syslogd: last message repeated 2 times Dec 22 21:20:32 slocum sudo[79785]: syncoid : command not allowed ; PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs send system/vm/hass@autosnap_2022-12-13_00:03:00_daily
I added this command:
syncoid ALL=(ALL) NOPASSWD:/sbin/zfs send -nvP system/vm/hass@autosnap_*
Again:
[syncoid@knew ~/.ssh]$ syncoid --sshkey=~syncoid/.ssh/id_ed25519 -r --no-sync-snap --compress=lzo --quiet syncoid@slocum.example.org:system/vm/hass system/backups-by-snapshot/syncoid Sorry, try again. Sorry, try again. WARN: ZFS resume feature not available on target machine - sync will continue without resume support. Sorry, try again. Sorry, try again. Sorry, try again. Sorry, try again. sudo: 3 incorrect password attempts mbuffer: error: outputThread: error writing toat offset 0x10000: Broken pipe mbuffer: warning: error during output to : Broken pipe warning: cannot send 'system/vm/hass@autosnap_2022-12-13_00:03:00_daily': signal received CRITICAL ERROR: ssh -i ~syncoid/.ssh/id_ed25519 -S /tmp/syncoid-syncoid@slocum.example.org-1671744190 syncoid@slocum.example.org 'sudo zfs send '"'"'system/vm/hass'"'"'@'"'"'autosnap_2022-12-13_00:03:00_daily'"'"' | lzop | mbuffer -q -s 128k -m 16M 2>/dev/null' | mbuffer -q -s 128k -m 16M 2>/dev/null | lzop -dfc | sudo zfs receive -F 'system/backups-by-snapshot/syncoid' failed: 256 at /usr/local/bin/syncoid line 492.
with:
Dec 22 21:23:10 slocum sudo[85925]: syncoid : PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zpool get -o value -H feature@extensible_dataset system Dec 22 21:23:10 slocum sudo[85927]: syncoid : PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs list -o name,origin -t filesystem,volume -Hr system/vm/hass Dec 22 21:23:10 slocum sudo[85931]: syncoid : PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs get -H syncoid:sync system/vm/hass Dec 22 21:23:10 slocum sudo[85933]: syncoid : PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs get -Hpd 1 -t snapshot guid,creation system/vm/hass Dec 22 21:23:10 slocum sudo[85935]: syncoid : PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs send -nvP system/vm/hass@autosnap_2022-12-13_00:03:00_daily Dec 22 21:23:10 slocum sudo[85938]: syncoid : PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs send system/vm/hass@autosnap_2022-12-13_00:03:00_daily
So everything on the other host worked. Let’s check this host:
Dec 22 21:26:00 knew syslogd: last message repeated 2 times Dec 22 21:26:00 knew sudo[45522]: syncoid : user NOT in sudoers ; TTY=pts/0 ; PWD=/usr/home/syncoid/.ssh ; USER=root ; COMMAND=/sbin/zpool get -o value -H feature@extensible_dataset system Dec 22 21:26:00 knew sudo[45531]: pam_ssh_agent_auth: Failed Authentication: `syncoid' as `syncoid' using /home/syncoid/.ssh/authorized_keys Dec 22 21:26:00 knew syslogd: last message repeated 2 times Dec 22 21:26:00 knew sudo[45531]: syncoid : user NOT in sudoers ; TTY=pts/0 ; PWD=/usr/home/syncoid/.ssh ; USER=root ; COMMAND=/sbin/zfs get -H name system/backups-by-snapshot/syncoid Dec 22 21:26:00 knew sudo[45543]: pam_ssh_agent_auth: Failed Authentication: `syncoid' as `syncoid' using /home/syncoid/.ssh/authorized_keys Dec 22 21:26:00 knew syslogd: last message repeated 2 times Dec 22 21:26:00 knew sudo[45543]: syncoid : user NOT in sudoers ; TTY=pts/0 ; PWD=/usr/home/syncoid/.ssh ; USER=root ; COMMAND=/sbin/zfs receive -F system/backups-by-snapshot/syncoid
Trying that again:
[syncoid@knew ~/.ssh]$ syncoid --sshkey=~syncoid/.ssh/id_ed25519 -r --no-sync-snap --compress=lzo --quiet syncoid@slocum.example.org:system/vm/hass system/backups-by-snapshot/syncoid Sorry, try again. Sorry, try again. ERROR getzfsvalue system/backups-by-snapshot/syncoid receive_resume_token: sudo: 3 incorrect password attempts Sorry, try again. Sorry, try again. snapshot listing failed, trying fallback command at /usr/local/bin/syncoid line 1606. Sorry, try again. Sorry, try again. sudo: 3 incorrect password attempts CRITICAL ERROR: snapshots couldn't be listed for system/backups-by-snapshot/syncoid (exit code 256) at /usr/local/bin/syncoid line 1610. [syncoid@knew ~/.ssh]$
So let’s what’s next:
Dec 22 21:28:01 knew sudo[45869]: syncoid : command not allowed ; TTY=pts/0 ; PWD=/usr/home/syncoid/.ssh ; USER=root ; COMMAND=/sbin/zfs get -H receive_resume_token system/backups-by-snapshot/syncoid Dec 22 21:28:01 knew sudo[45871]: pam_ssh_agent_auth: Failed Authentication: `syncoid' as `syncoid' using /home/syncoid/.ssh/authorized_keys Dec 22 21:28:01 knew syslogd: last message repeated 2 times Dec 22 21:28:01 knew sudo[45871]: syncoid : command not allowed ; TTY=pts/0 ; PWD=/usr/home/syncoid/.ssh ; USER=root ; COMMAND=/sbin/zfs get -Hpd 1 -t snapshot guid,creation system/backups-by-snapshot/syncoid Dec 22 21:28:01 knew sudo[45872]: pam_ssh_agent_auth: Failed Authentication: `syncoid' as `syncoid' using /home/syncoid/.ssh/authorized_keys Dec 22 21:28:01 knew syslogd: last message repeated 2 times Dec 22 21:28:01 knew sudo[45872]: syncoid : command not allowed ; TTY=pts/0 ; PWD=/usr/home/syncoid/.ssh ; USER=root ; COMMAND=/sbin/zfs get -Hpd 1 type,guid,creation system/backups-by-snapshot/syncoid
Again:
[syncoid@knew ~/.ssh]$ syncoid --sshkey=~syncoid/.ssh/id_ed25519 -r --no-sync-snap --compress=lzo --quiet syncoid@slocum.example.org:system/vm/hass system/backups-by-snapshot/syncoid Sorry, try again. Sorry, try again. ERROR getzfsvalue system/backups-by-snapshot/syncoid -p used: sudo: 3 incorrect password attempts CRITICAL ERROR: bookmarks couldn't be listed for system/vm/hass (exit code 256) at /usr/local/bin/syncoid line 1700.
with:
Dec 22 21:30:03 knew sudo[46437]: syncoid : command not allowed ; TTY=pts/0 ; PWD=/usr/home/syncoid/.ssh ; USER=root ; COMMAND=/sbin/zfs get -H -p used system/backups-by-snapshot/syncoid
At least the messages are getting shorter:
[syncoid@knew ~/.ssh]$ syncoid --sshkey=~syncoid/.ssh/id_ed25519 -r --no-sync-snap --compress=lzo --quiet syncoid@slocum.example.org:system/vm/hass system/backups-by-snapshot/syncoid CRITICAL ERROR: bookmarks couldn't be listed for system/vm/hass (exit code 256) at /usr/local/bin/syncoid line 1700.
This time, all clear on knew, let’s check slocum:
Dec 22 21:31:40 slocum sudo[9776]: syncoid : command not allowed ; PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs get -Hpd 1 -t bookmark guid,creation system/vm/hass
OK, this, with another escape:
syncoid ALL=(ALL) NOPASSWD:/sbin/zfs get -Hpd 1 -t bookmark guid\,creation system/vm/hass
Here we are, the big moment! Notice that this command is slight different. because. history.
This error message is what appeared and does not match the above command exactly, because of filesystem name changes earlier explained.
[syncoid@knew ~/.ssh]$ syncoid --sshkey=~syncoid/.ssh/id_ed25519 -r --no-sync-snap --compress=lzo --quiet syncoid@slocum.example.org:system/vm/hass system/backups-by-snapshot/homeassistant CRITICAL ERROR: Target system/backups-by-snapshot/homeassistant exists but has no snapshots matching with system/vm/hass! Replication to target would require destroying existing target. Cowardly refusing to destroy your existing target. NOTE: Target system/backups-by-snapshot/homeassistant dataset is < 64MB used - did you mistakenly run `zfs create system/backups-by-snapshot/homeassistant ` on the target? ZFS initial replication must be to a NON EXISTENT DATASET, which will then be CREATED BY the initial replication process. [syncoid@knew ~/.ssh]$
This is where I went back and destroyed system/backups-by-snapshot/homeassistant and created system/backups-by-snapshot/syncoid
After creating the new filesystem, I ran an amended command:
[syncoid@knew ~]$ syncoid --sshkey=~syncoid/.ssh/id_ed25519 -r --no-sync-snap --compress=lzo --quiet syncoid@slocum.example.org:system/vm/hass system/backups-by-snapshot/syncoid/homeassistant Sorry, try again. Sorry, try again. Sorry, try again. Sorry, try again. sudo: 3 incorrect password attempts mbuffer: error: outputThread: error writing toat offset 0x10000: Broken pipe mbuffer: warning: error during output to : Broken pipe warning: cannot send 'system/vm/hass@autosnap_2022-12-13_00:03:00_daily': signal received CRITICAL ERROR: ssh -i ~syncoid/.ssh/id_ed25519 -S /tmp/syncoid-syncoid@slocum.example.org-1671745437 syncoid@slocum.example.org 'sudo zfs send '"'"'system/vm/hass'"'"'@'"'"'autosnap_2022-12-13_00:03:00_daily'"'"' | lzop | mbuffer -q -s 128k -m 16M 2>/dev/null' | mbuffer -q -s 128k -m 16M 2>/dev/null | lzop -dfc | sudo zfs receive -s -F 'system/backups-by-snapshot/syncoid/homeassistant' failed: 256 at /usr/local/bin/syncoid line 492.
These are the errors:
Dec 22 21:43:57 knew sudo[51756]: syncoid : command not allowed ; TTY=pts/0 ; PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs get -H name system/backups-by-snapshot/syncoid/homeassistant Dec 22 21:43:58 knew sudo[51764]: pam_ssh_agent_auth: Failed Authentication: `syncoid' as `syncoid' using /home/syncoid/.ssh/authorized_keys Dec 22 21:43:58 knew syslogd: last message repeated 2 times Dec 22 21:43:58 knew sudo[51764]: syncoid : command not allowed ; TTY=pts/0 ; PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs receive -s -F system/backups-by-snapshot/syncoid/homeassistant
One of those replaces an existing entry I think. The other is new. I will show the completed set near the end of this post.
Now waiting for this to finish:
[syncoid@knew ~]$ syncoid --sshkey=~syncoid/.ssh/id_ed25519 -r --no-sync-snap --compress=lzo --quiet syncoid@slocum.example.org:system/vm/hass system/backups-by-snapshot/syncoid/homeassistant
It's coming in:
[knew dan ~] % zfs list system/backups-by-snapshot/syncoid/homeassistant NAME USED AVAIL REFER MOUNTPOINT system/backups-by-snapshot/syncoid/homeassistant 14.3G 18.9T 14.3G /usr/home/ansel/snapshots/syncoid/homeassistant [knew dan ~] % zfs list system/backups-by-snapshot/syncoid/homeassistant NAME USED AVAIL REFER MOUNTPOINT system/backups-by-snapshot/syncoid/homeassistant 14.7G 18.9T 14.7G /usr/home/ansel/snapshots/syncoid/homeassistant [knew dan ~] %
I saw this happen. These are my regular snapshots going off and getting interrupted by syncoid.
cannot create snapshot 'system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-22_21:54:04_hourly': dataset is busy CRITICAL ERROR: zfs snapshot system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-22_21:54:04_hourly failed, 256 at /usr/local/bin/sanoid line 627. cannot create snapshot 'system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-22_21:54:04_frequently': dataset is busy CRITICAL ERROR: zfs snapshot system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-22_21:54:04_frequently failed, 256 at /usr/local/bin/sanoid line 627.
And it failed:
[syncoid@knew ~]$ syncoid --sshkey=~syncoid/.ssh/id_ed25519 -r --no-sync-snap --compress=lzo --quiet syncoid@slocum.example.org:system/vm/hass system/backups-by-snapshot/syncoid/homeassistant Sorry, try again. Sorry, try again. sudo: 3 incorrect password attempts cannot receive: failed to read from stream CRITICAL ERROR: ssh -i ~syncoid/.ssh/id_ed25519 -S /tmp/syncoid-syncoid@slocum.example.org-1671745695 syncoid@slocum.example.org 'sudo zfs send -I '"'"'system/vm/hass'"'"'@'"'"'autosnap_2022-12-13_00:03:00_daily'"'"' '"'"'system/vm/hass'"'"'@'"'"'autosnap_2022-12-22_21:46:05_frequently'"'"' | lzop | mbuffer -q -s 128k -m 16M 2>/dev/null' | mbuffer -q -s 128k -m 16M 2>/dev/null | lzop -dfc | sudo zfs receive -s -F 'system/backups-by-snapshot/syncoid/homeassistant' failed: 256 at /usr/local/bin/syncoid line 528. [syncoid@knew ~]$
Well, one more command:
Dec 22 21:57:13 slocum sudo[78650]: syncoid : command not allowed ; PWD=/usr/home/syncoid ; USER=root ; COMMAND=/sbin/zfs send -I system/vm/hass@autosnap_2022-12-13_00:03:00_daily system/vm/hass@autosnap_2022-12-22_21:46:05_frequently
Added:
syncoid ALL=(ALL) NOPASSWD:/sbin/zfs send -I system/vm/hass@autosnap* system/vm/hass@autosnap_*
Trying again:
[syncoid@knew ~]$ syncoid --sshkey=~syncoid/.ssh/id_ed25519 -r --no-sync-snap --compress=lzo --quiet syncoid@slocum.example.org:system/vm/hass system/backups-by-snapshot/syncoid/homeassistant Sorry, try again. Sorry, try again. ERROR getzfsvalue system/backups-by-snapshot/syncoid/homeassistant receive_resume_token: sudo: 3 incorrect password attempts Sorry, try again. Sorry, try again. snapshot listing failed, trying fallback command at /usr/local/bin/syncoid line 1606. Sorry, try again. Sorry, try again. sudo: 3 incorrect password attempts CRITICAL ERROR: snapshots couldn't be listed for system/backups-by-snapshot/syncoid/homeassistant (exit code 256) at /usr/local/bin/syncoid line 1610. [syncoid@knew ~]$
and adding three more commands to the receiving host:
syncoid ALL=(ALL) NOPASSWD:/sbin/zfs get -H receive_resume_token system/backups-by-snapshot/syncoid/homeassistant syncoid ALL=(ALL) NOPASSWD:/sbin/zfs get -Hpd 1 -t snapshot guid\,creation system/backups-by-snapshot/syncoid/homeassistant syncoid ALL=(ALL) NOPASSWD:/sbin/zfs get -Hpd 1 type\,guid\,creation system/backups-by-snapshot/syncoid/homeassistant
Trying again:
[syncoid@knew ~]$ syncoid --sshkey=~syncoid/.ssh/id_ed25519 -r --no-sync-snap --compress=lzo --quiet syncoid@slocum.example.org:system/vm/hass system/backups-by-snapshot/syncoid/homeassistant Sorry, try again. Sorry, try again. ERROR getzfsvalue system/backups-by-snapshot/syncoid/homeassistant -p used: sudo: 3 incorrect password attempts Sorry, try again. Sorry, try again. sudo: 3 incorrect password attempts [syncoid@knew ~]$
syncoid ALL=(ALL) NOPASSWD:/sbin/zfs get -H -p used system/backups-by-snapshot/syncoid/homeassistant syncoid ALL=(ALL) NOPASSWD:/sbin/zfs rollback -R system/backups-by-snapshot/syncoid/homeassistant@autosnap_*
While I like specifying at least vaguely what the user can do with sudo, I wonder how fragile this is.
Let's try the command again.
[syncoid@knew ~]$ syncoid --sshkey=~syncoid/.ssh/id_ed25519 -r --no-sync-snap --compress=lzo --quiet syncoid@slocum.example.org:system/vm/hass system/backups-by-snapshot/syncoid/homeassistant [syncoid@knew ~]$
No errors. :)
The cronjob I have:
[syncoid@knew ~]$ crontab -l 24 * * * * syncoid --sshkey=~syncoid/.ssh/id_ed25519 -r --no-sync-snap --compress=lzo --quiet syncoid@slocum.example.org:system/vm/hass system/backups-by-snapshot/syncoid/homeassistant [syncoid@knew ~]$
Things to do: kill off the old snapshots.... and tell sanoid you don't have to snapshot it.
[syncoid@knew ~]$ zfs list -r -t snapshot system/backups-by-snapshot/syncoid/homeassistant NAME USED AVAIL REFER MOUNTPOINT system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-22_19:02:15_hourly 195M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-22_19:45:46_frequently 128M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-22_20:01:39_hourly 603K - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-22_20:01:39_frequently 603K - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-22_20:16:16_frequently 104M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-22_20:30:45_frequently 103M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-22_20:46:06_frequently 104M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-22_21:00:43_hourly 0B - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-22_21:00:43_frequently 0B - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-22_21:16:20_frequently 108M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-22_21:30:58_frequently 107M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-22_21:46:05_frequently 107M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-22_22:01:23_hourly 823K - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-22_22:01:23_frequently 823K - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-22_22:16:05_frequently 0B - 32.0G - [syncoid@knew ~]$
The sudo permissions on the source
These are the sudo permissions required on the source (the host being backed up):
slocum dan ~] % cat /usr/local/etc/sudoers.d/syncoid syncoid ALL=(ALL) NOPASSWD:/sbin/zpool get -o value -H feature@extensible_dataset system syncoid ALL=(ALL) NOPASSWD:/sbin/zfs list -o name\,origin -t filesystem\,volume -Hr system/vm/hass syncoid ALL=(ALL) NOPASSWD:/sbin/zfs get -H syncoid\:sync system/vm/hass syncoid ALL=(ALL) NOPASSWD:/sbin/zfs get -Hpd 1 -t snapshot guid\,creation system/vm/hass syncoid ALL=(ALL) NOPASSWD:/sbin/zfs send -nvP system/vm/hass@autosnap_* syncoid ALL=(ALL) NOPASSWD:/sbin/zfs send system/vm/hass@autosnap_* syncoid ALL=(ALL) NOPASSWD:/sbin/zfs get -Hpd 1 -t bookmark guid\,creation system/vm/hass syncoid ALL=(ALL) NOPASSWD:/sbin/zfs send -I system/vm/hass@autosnap* system/vm/hass@autosnap_* syncoid ALL=(ALL) NOPASSWD:/sbin/zfs send -nvP -I system/vm/hass@autosnap_* system/vm/hass@autosnap_*
The sudo permissions on the destination
These are the sudo permissions required on the destination (the host accepting the backups):
[knew dan ~] % cat /usr/local/etc/sudoers.d/syncoid syncoid ALL=(ALL) NOPASSWD:/sbin/zpool get -o value -H feature@extensible_dataset system syncoid ALL=(ALL) NOPASSWD:/sbin/zfs get -H name system/backups-by-snapshot/syncoid/homeassistant syncoid ALL=(ALL) NOPASSWD:/sbin/zfs receive -F system/backups-by-snapshot/syncoid syncoid ALL=(ALL) NOPASSWD:/sbin/zfs receive -s -F system/backups-by-snapshot/syncoid/homeassistant syncoid ALL=(ALL) NOPASSWD:/sbin/zfs get -H receive_resume_token system/backups-by-snapshot/syncoid syncoid ALL=(ALL) NOPASSWD:/sbin/zfs get -Hpd 1 -t snapshot guid\,creation system/backups-by-snapshot/syncoid syncoid ALL=(ALL) NOPASSWD:/sbin/zfs get -H -p used system/backups-by-snapshot/syncoid syncoid ALL=(ALL) NOPASSWD:/sbin/zfs get -H receive_resume_token system/backups-by-snapshot/syncoid/homeassistant syncoid ALL=(ALL) NOPASSWD:/sbin/zfs get -Hpd 1 -t snapshot guid\,creation system/backups-by-snapshot/syncoid/homeassistant syncoid ALL=(ALL) NOPASSWD:/sbin/zfs get -Hpd 1 type\,guid\,creation system/backups-by-snapshot/syncoid/homeassistant syncoid ALL=(ALL) NOPASSWD:/sbin/zfs get -H -p used system/backups-by-snapshot/syncoid/homeassistant syncoid ALL=(ALL) NOPASSWD:/sbin/zfs rollback -R system/backups-by-snapshot/syncoid/homeassistant@autosnap_*
sanoid configuration on the destination
This is what I have in /usr/local/etc/sanoid/sanoid.conf which pertains to the backed up filesystems.
... [system/backups-by-snapshot/syncoid/homeassistant] use_template = homeassistant recursive = yes ... [template_homeassistant] frequently = 25 hourly = 96 daily = 45 monthly = 5 autosnap = no autoprune = yes
Of not, this host create no snapshots on this dataset. It does prune, but it also keeps more snapshots than the original system does. This is what I have right now:
[knew dan ~] % zfs list -r -t snapshot system/backups-by-snapshot/syncoid/homeassistant NAME USED AVAIL REFER MOUNTPOINT system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-23_00:03:20_daily 2.88G - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-23_19:01:33_hourly 212M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-23_20:01:03_hourly 177M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-23_21:01:44_hourly 179M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-23_22:02:00_hourly 178M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-23_23:01:10_hourly 177M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_00:01:29_daily 603K - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_00:01:29_hourly 603K - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_01:01:06_hourly 172M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_02:01:44_hourly 176M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_03:01:43_hourly 175M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_04:00:58_hourly 178M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_05:01:06_hourly 180M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_06:02:11_hourly 170M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_07:02:29_hourly 175M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_08:02:27_hourly 171M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_09:00:57_hourly 173M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_10:00:45_hourly 175M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_11:01:27_hourly 177M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_12:02:20_hourly 175M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_13:01:54_hourly 174M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_14:01:31_hourly 172M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_15:00:32_hourly 174M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_16:01:08_hourly 176M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_17:01:47_hourly 176M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_18:02:43_hourly 177M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_19:00:27_hourly 175M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_20:01:50_hourly 176M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_21:02:36_hourly 175M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_22:01:33_hourly 174M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-24_23:01:27_hourly 173M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_00:02:27_daily 384K - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_00:02:27_hourly 384K - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_01:00:33_hourly 175M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_02:01:05_hourly 175M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_03:03:01_hourly 179M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_04:02:25_hourly 185M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_05:01:03_hourly 184M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_06:00:19_hourly 169M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_07:02:27_hourly 174M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_08:00:55_hourly 171M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_09:02:16_hourly 172M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_10:00:33_hourly 176M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_11:02:11_hourly 178M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_12:01:46_hourly 175M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_13:01:49_hourly 175M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_14:00:52_hourly 177M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_15:00:57_hourly 176M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_16:01:17_hourly 175M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_17:00:42_hourly 178M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_18:01:25_hourly 177M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_19:02:32_hourly 177M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_20:03:02_hourly 179M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_21:02:24_hourly 180M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_22:01:18_hourly 181M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-25_23:00:46_hourly 180M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_00:03:20_daily 0B - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_00:03:20_hourly 0B - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_01:01:27_hourly 181M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_02:01:55_hourly 180M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_03:03:13_hourly 184M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_04:03:23_hourly 193M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_05:01:49_hourly 193M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_06:01:53_hourly 175M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_07:01:45_hourly 180M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_08:00:56_hourly 180M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_09:02:01_hourly 176M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_10:01:44_hourly 179M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_11:01:12_hourly 181M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_12:00:57_hourly 176M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_13:00:32_hourly 177M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_14:01:07_hourly 178M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_15:01:12_hourly 176M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_16:02:03_hourly 180M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_17:01:07_hourly 185M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_18:02:34_hourly 180M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_19:00:20_hourly 179M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_20:01:02_hourly 187M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_21:01:59_hourly 182M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_22:01:19_hourly 180M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-26_23:00:44_hourly 178M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_00:01:12_daily 0B - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_00:01:12_hourly 0B - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_01:01:47_hourly 186M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_02:01:57_hourly 181M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_03:01:53_hourly 185M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_04:01:47_hourly 192M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_05:02:00_hourly 198M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_06:00:58_hourly 174M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_07:00:29_hourly 177M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_08:01:39_hourly 178M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_09:01:16_hourly 180M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_10:02:23_hourly 179M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_11:01:49_hourly 178M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_12:02:56_hourly 123M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_12:15:46_frequently 101M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_12:31:10_frequently 104M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_12:45:53_frequently 106M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_13:00:54_hourly 0B - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_13:00:54_frequently 0B - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_13:15:45_frequently 105M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_13:31:00_frequently 106M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_13:45:45_frequently 103M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_14:00:45_hourly 603K - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_14:00:45_frequently 603K - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_14:16:06_frequently 102M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_14:30:40_frequently 101M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_14:46:35_frequently 102M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_15:01:45_hourly 603K - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_15:01:45_frequently 603K - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_15:16:37_frequently 102M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_15:30:55_frequently 102M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_15:45:16_frequently 102M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_16:00:51_hourly 603K - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_16:00:51_frequently 603K - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_16:16:40_frequently 104M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_16:31:47_frequently 105M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_16:45:48_frequently 105M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_17:01:12_hourly 585K - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_17:01:12_frequently 603K - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_17:15:46_frequently 102M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_17:31:04_frequently 107M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_17:46:22_frequently 103M - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_18:00:56_hourly 384K - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_18:00:56_frequently 384K - 32.0G - system/backups-by-snapshot/syncoid/homeassistant@autosnap_2022-12-27_18:16:29_frequently 0B - 32.0G -
So far, so good
So far, so good. I'm liking this solution. It is very specific to this one filesystem, and I am sure I could adopt it to any others I need to replicate like this.