yboetz / pyznap

ZFS snapshot tool written in python
GNU General Public License v3.0
197 stars 35 forks source link

pyznap send sends snapshots that pyznap snap will clear. #98

Open jcferretti opened 1 year ago

jcferretti commented 1 year ago

First, let me say thanks for a great tool.

I run pyznap send daily and pyznap snap every 15 minutes via crontab. I do not want to keep snapshots more frequent than daily in the destination for send (eg, no frequent, no hourly). I do want frequent and hourly snapshots in the source dataset; this seems consistent with intended usage, since a daily send is suggested and keeping enough hourlies to be able to survive some missed schedule would be tough (eg, would need 48 or more dailies so that there is a snapshot if one daily send is missed).

Anyway, my issue is that pyznap send seems to send /all/ snapshots, including frequent and hourly, only for the next pyznap snap to remove them:

root@caicai 12:15:52 ~
# pyznap send
Mar 20 12:15:54 INFO: Starting pyznap...
Mar 20 12:15:54 INFO: Sending snapshots...
Mar 20 12:15:54 INFO: Updating z2/backup/ROOT with recent snapshot z0/ROOT@pyznap_2023-03-20_12:15:02_frequent (~10.4K)...
Mar 20 12:15:56 INFO: z2/backup/ROOT is up to date...
Mar 20 12:15:56 INFO: Updating z2/backup/ROOT/ubuntu.2023.03.10 with recent snapshot z0/ROOT/ubuntu.2023.03.10@pyznap_2023-03-20_12:15:02_frequent (~53.8M)...
   132MiB 0:00:03 [37.2MiB/s] [=====================================================] 246%            
Mar 20 12:16:00 INFO: z2/backup/ROOT/ubuntu.2023.03.10 is up to date...
Mar 20 12:16:00 INFO: Updating z2/backup/home with recent snapshot z0/home@pyznap_2023-03-20_12:15:02_frequent (~10.4K)...
Mar 20 12:16:03 INFO: z2/backup/home is up to date...
Mar 20 12:16:03 INFO: Updating z2/backup/home/cfs with recent snapshot z0/home/cfs@pyznap_2023-03-20_12:15:02_frequent (~472.3M)...
   990MiB 0:00:43 [22.9MiB/s] [=====================================================] 209%            
Mar 20 12:17:03 INFO: z2/backup/home/cfs is up to date...
Mar 20 12:17:03 INFO: Updating z2/backup/home/root with recent snapshot z0/home/root@pyznap_2023-03-20_12:15:02_frequent (~265.9K)...
Mar 20 12:17:05 INFO: z2/backup/home/root is up to date...
Mar 20 12:17:05 INFO: Updating z2/backup/l with recent snapshot z0/l@pyznap_2023-03-20_12:00:01_hourly (~3.0M)...
  20.0MiB 0:00:00 [ 113MiB/s] [=====================================================] 671%            
Mar 20 12:17:07 INFO: z2/backup/l is up to date...
Mar 20 12:17:07 INFO: Updating z2/backup/usr with recent snapshot z0/usr@pyznap_2023-03-20_12:00:01_hourly (~7.3K)...
Mar 20 12:17:09 INFO: z2/backup/usr is up to date...
Mar 20 12:17:09 INFO: Updating z2/backup/usr/local with recent snapshot z0/usr/local@pyznap_2023-03-20_12:00:01_hourly (~107.8K)...
Mar 20 12:17:11 INFO: z2/backup/usr/local is up to date...
Mar 20 12:17:11 INFO: Updating z2/backup/var with recent snapshot z0/var@pyznap_2023-03-20_12:00:01_hourly (~7.3K)...
Mar 20 12:17:12 INFO: z2/backup/var is up to date...
Mar 20 12:17:13 INFO: Updating z2/backup/var/cache with recent snapshot z0/var/cache@pyznap_2023-03-20_12:00:01_hourly (~82.8M)...
  83.1MiB 0:00:00 [ 108MiB/s] [====================================================>] 100%            
Mar 20 12:17:15 INFO: z2/backup/var/cache is up to date...
Mar 20 12:17:15 INFO: Updating z2/backup/var/games with recent snapshot z0/var/games@pyznap_2023-03-20_12:00:01_hourly (~13.8K)...
Mar 20 12:17:16 INFO: z2/backup/var/games is up to date...
Mar 20 12:17:16 INFO: Updating z2/backup/var/lib with recent snapshot z0/var/lib@pyznap_2023-03-20_12:00:01_hourly (~7.3K)...
Mar 20 12:17:18 INFO: z2/backup/var/lib is up to date...
Mar 20 12:17:18 INFO: Updating z2/backup/var/lib/AccountsService with recent snapshot z0/var/lib/AccountsService@pyznap_2023-03-20_12:00:01_hourly (~14.8K)...
Mar 20 12:17:20 INFO: z2/backup/var/lib/AccountsService is up to date...
Mar 20 12:17:20 INFO: Updating z2/backup/var/lib/NetworkManager with recent snapshot z0/var/lib/NetworkManager@pyznap_2023-03-20_12:00:01_hourly (~7.3K)...
Mar 20 12:17:22 INFO: z2/backup/var/lib/NetworkManager is up to date...
Mar 20 12:17:22 INFO: Updating z2/backup/var/lib/nfs with recent snapshot z0/var/lib/nfs@pyznap_2023-03-20_12:00:01_hourly (~14.8K)...
Mar 20 12:17:24 INFO: z2/backup/var/lib/nfs is up to date...
Mar 20 12:17:24 INFO: Updating z2/backup/var/log with recent snapshot z0/var/log@pyznap_2023-03-20_12:00:01_hourly (~119.8M)...
   120MiB 0:00:02 [48.1MiB/s] [====================================================>] 100%            
Mar 20 12:17:26 INFO: z2/backup/var/log is up to date...
Mar 20 12:17:26 INFO: Updating z2/backup/var/mail with recent snapshot z0/var/mail@pyznap_2023-03-20_12:00:01_hourly (~13.8K)...
Mar 20 12:17:28 INFO: z2/backup/var/mail is up to date...
Mar 20 12:17:28 INFO: Updating z2/backup/var/snap with recent snapshot z0/var/snap@pyznap_2023-03-20_12:00:01_hourly (~23.3K)...
Mar 20 12:17:30 INFO: z2/backup/var/snap is up to date...
Mar 20 12:17:30 INFO: Updating z2/backup/var/spool with recent snapshot z0/var/spool@pyznap_2023-03-20_12:00:01_hourly (~46.8K)...
Mar 20 12:17:32 INFO: z2/backup/var/spool is up to date...
Mar 20 12:17:32 INFO: Updating z2/backup/var/tmp with recent snapshot z0/var/tmp@pyznap_2023-03-20_12:00:01_hourly (~93.8K)...
Mar 20 12:17:34 INFO: z2/backup/var/tmp is up to date...
Mar 20 12:17:34 INFO: Updating z2/backup/var/www with recent snapshot z0/var/www@pyznap_2023-03-20_12:00:01_hourly (~13.8K)...
Mar 20 12:17:36 INFO: z2/backup/var/www is up to date...
Mar 20 12:17:36 INFO: Finished successfully...

root@caicai 12:17:36 ~
# pyznap snap
Mar 20 12:17:52 INFO: Starting pyznap...
Mar 20 12:17:52 INFO: Taking snapshots...
Mar 20 12:17:52 INFO: Taking snapshot z0/ROOT@pyznap_2023-03-20_12:17:52_frequent...
Mar 20 12:17:52 INFO: Taking snapshot z0/home@pyznap_2023-03-20_12:17:52_frequent...
Mar 20 12:17:53 INFO: Cleaning snapshots...
Mar 20 12:17:53 INFO: Deleting snapshot z0/ROOT@pyznap_2023-03-20_12:01:12_frequent...
Mar 20 12:17:53 INFO: Deleting snapshot z0/ROOT/ubuntu.2023.03.10@pyznap_2023-03-20_12:01:12_frequent...
Mar 20 12:17:53 INFO: Deleting snapshot z0/home@pyznap_2023-03-20_12:01:12_frequent...
Mar 20 12:17:53 INFO: Deleting snapshot z0/home/cfs@pyznap_2023-03-20_12:01:12_frequent...
Mar 20 12:17:53 INFO: Deleting snapshot z0/home/root@pyznap_2023-03-20_12:01:12_frequent...
Mar 20 12:17:54 INFO: Deleting snapshot z2/backup/ROOT@pyznap_2023-03-20_12:00:01_hourly...
Mar 20 12:17:54 INFO: Deleting snapshot z2/backup/ROOT@pyznap_2023-03-20_11:00:01_hourly...
Mar 20 12:17:54 INFO: Deleting snapshot z2/backup/ROOT@pyznap_2023-03-20_10:00:01_hourly...
Mar 20 12:17:55 INFO: Deleting snapshot z2/backup/ROOT@pyznap_2023-03-20_09:00:01_hourly...
Mar 20 12:17:55 INFO: Deleting snapshot z2/backup/ROOT@pyznap_2023-03-20_08:00:01_hourly...
Mar 20 12:17:55 INFO: Deleting snapshot z2/backup/ROOT@pyznap_2023-03-20_07:00:01_hourly...
Mar 20 12:17:55 INFO: Deleting snapshot z2/backup/ROOT@pyznap_2023-03-20_06:00:01_hourly...
Mar 20 12:17:55 INFO: Deleting snapshot z2/backup/ROOT@pyznap_2023-03-20_05:00:01_hourly...
Mar 20 12:17:55 INFO: Deleting snapshot z2/backup/ROOT@pyznap_2023-03-20_04:00:01_hourly...
Mar 20 12:17:55 INFO: Deleting snapshot z2/backup/ROOT@pyznap_2023-03-20_03:00:01_hourly...
Mar 20 12:17:55 INFO: Deleting snapshot z2/backup/ROOT@pyznap_2023-03-20_02:00:01_hourly...
Mar 20 12:17:56 INFO: Deleting snapshot z2/backup/ROOT@pyznap_2023-03-20_01:00:01_hourly...
Mar 20 12:17:56 INFO: Deleting snapshot z2/backup/ROOT@pyznap_2023-03-20_00:30:01_hourly...
Mar 20 12:17:56 INFO: Deleting snapshot z2/backup/ROOT@pyznap_2023-03-20_12:15:02_frequent...
Mar 20 12:17:56 INFO: Deleting snapshot z2/backup/ROOT@pyznap_2023-03-20_12:14:50_frequent...
Mar 20 12:17:56 INFO: Deleting snapshot z2/backup/ROOT@pyznap_2023-03-20_12:09:44_frequent...
Mar 20 12:17:56 INFO: Deleting snapshot z2/backup/ROOT@pyznap_2023-03-20_12:01:12_frequent...
Mar 20 12:17:56 INFO: Deleting snapshot z2/backup/ROOT/ubuntu.2023.03.10@pyznap_2023-03-20_12:00:01_hourly...
Mar 20 12:17:56 INFO: Deleting snapshot z2/backup/ROOT/ubuntu.2023.03.10@pyznap_2023-03-20_11:00:01_hourly...
Mar 20 12:17:57 INFO: Deleting snapshot z2/backup/ROOT/ubuntu.2023.03.10@pyznap_2023-03-20_10:00:01_hourly...
Mar 20 12:17:57 INFO: Deleting snapshot z2/backup/ROOT/ubuntu.2023.03.10@pyznap_2023-03-20_09:00:01_hourly...
Mar 20 12:17:57 INFO: Deleting snapshot z2/backup/ROOT/ubuntu.2023.03.10@pyznap_2023-03-20_08:00:01_hourly...
Mar 20 12:17:57 INFO: Deleting snapshot z2/backup/ROOT/ubuntu.2023.03.10@pyznap_2023-03-20_07:00:01_hourly...
Mar 20 12:17:57 INFO: Deleting snapshot z2/backup/ROOT/ubuntu.2023.03.10@pyznap_2023-03-20_06:00:01_hourly...
Mar 20 12:17:57 INFO: Deleting snapshot z2/backup/ROOT/ubuntu.2023.03.10@pyznap_2023-03-20_05:00:01_hourly...
Mar 20 12:17:57 INFO: Deleting snapshot z2/backup/ROOT/ubuntu.2023.03.10@pyznap_2023-03-20_04:00:01_hourly...
Mar 20 12:17:57 INFO: Deleting snapshot z2/backup/ROOT/ubuntu.2023.03.10@pyznap_2023-03-20_03:00:01_hourly...
Mar 20 12:17:57 INFO: Deleting snapshot z2/backup/ROOT/ubuntu.2023.03.10@pyznap_2023-03-20_02:00:01_hourly...
Mar 20 12:17:58 INFO: Deleting snapshot z2/backup/ROOT/ubuntu.2023.03.10@pyznap_2023-03-20_01:00:01_hourly...
Mar 20 12:17:58 INFO: Deleting snapshot z2/backup/ROOT/ubuntu.2023.03.10@pyznap_2023-03-20_00:30:01_hourly...
Mar 20 12:17:58 INFO: Deleting snapshot z2/backup/ROOT/ubuntu.2023.03.10@pyznap_2023-03-20_12:15:02_frequent...
Mar 20 12:17:58 INFO: Deleting snapshot z2/backup/ROOT/ubuntu.2023.03.10@pyznap_2023-03-20_12:14:50_frequent...
Mar 20 12:17:58 INFO: Deleting snapshot z2/backup/ROOT/ubuntu.2023.03.10@pyznap_2023-03-20_12:09:44_frequent...
Mar 20 12:17:58 INFO: Deleting snapshot z2/backup/ROOT/ubuntu.2023.03.10@pyznap_2023-03-20_12:01:12_frequent...
Mar 20 12:17:58 INFO: Deleting snapshot z2/backup/home@pyznap_2023-03-20_12:00:01_hourly...
Mar 20 12:17:58 INFO: Deleting snapshot z2/backup/home@pyznap_2023-03-20_11:00:01_hourly...
Mar 20 12:17:58 INFO: Deleting snapshot z2/backup/home@pyznap_2023-03-20_10:00:02_hourly...
Mar 20 12:17:59 INFO: Deleting snapshot z2/backup/home@pyznap_2023-03-20_09:00:01_hourly...
Mar 20 12:17:59 INFO: Deleting snapshot z2/backup/home@pyznap_2023-03-20_08:00:01_hourly...
Mar 20 12:17:59 INFO: Deleting snapshot z2/backup/home@pyznap_2023-03-20_07:00:01_hourly...
Mar 20 12:17:59 INFO: Deleting snapshot z2/backup/home@pyznap_2023-03-20_06:00:01_hourly...
Mar 20 12:17:59 INFO: Deleting snapshot z2/backup/home@pyznap_2023-03-20_05:00:01_hourly...
Mar 20 12:17:59 INFO: Deleting snapshot z2/backup/home@pyznap_2023-03-20_04:00:01_hourly...
Mar 20 12:17:59 INFO: Deleting snapshot z2/backup/home@pyznap_2023-03-20_03:00:01_hourly...
Mar 20 12:17:59 INFO: Deleting snapshot z2/backup/home@pyznap_2023-03-20_02:00:01_hourly...
Mar 20 12:17:59 INFO: Deleting snapshot z2/backup/home@pyznap_2023-03-20_01:00:01_hourly...
Mar 20 12:17:59 INFO: Deleting snapshot z2/backup/home@pyznap_2023-03-20_00:30:01_hourly...
Mar 20 12:18:00 INFO: Deleting snapshot z2/backup/home@pyznap_2023-03-20_12:15:02_frequent...
Mar 20 12:18:00 INFO: Deleting snapshot z2/backup/home@pyznap_2023-03-20_12:14:50_frequent...
Mar 20 12:18:00 INFO: Deleting snapshot z2/backup/home@pyznap_2023-03-20_12:09:44_frequent...
Mar 20 12:18:00 INFO: Deleting snapshot z2/backup/home@pyznap_2023-03-20_12:01:12_frequent...
Mar 20 12:18:00 INFO: Deleting snapshot z2/backup/home/cfs@pyznap_2023-03-20_12:00:01_hourly...
Mar 20 12:18:00 INFO: Deleting snapshot z2/backup/home/cfs@pyznap_2023-03-20_11:00:01_hourly...
Mar 20 12:18:00 INFO: Deleting snapshot z2/backup/home/cfs@pyznap_2023-03-20_10:00:02_hourly...
Mar 20 12:18:00 INFO: Deleting snapshot z2/backup/home/cfs@pyznap_2023-03-20_09:00:01_hourly...
Mar 20 12:18:01 INFO: Deleting snapshot z2/backup/home/cfs@pyznap_2023-03-20_08:00:01_hourly...
Mar 20 12:18:01 INFO: Deleting snapshot z2/backup/home/cfs@pyznap_2023-03-20_07:00:01_hourly...
Mar 20 12:18:01 INFO: Deleting snapshot z2/backup/home/cfs@pyznap_2023-03-20_06:00:01_hourly...
Mar 20 12:18:01 INFO: Deleting snapshot z2/backup/home/cfs@pyznap_2023-03-20_05:00:01_hourly...
Mar 20 12:18:01 INFO: Deleting snapshot z2/backup/home/cfs@pyznap_2023-03-20_04:00:01_hourly...
Mar 20 12:18:01 INFO: Deleting snapshot z2/backup/home/cfs@pyznap_2023-03-20_03:00:01_hourly...
Mar 20 12:18:01 INFO: Deleting snapshot z2/backup/home/cfs@pyznap_2023-03-20_02:00:01_hourly...
Mar 20 12:18:01 INFO: Deleting snapshot z2/backup/home/cfs@pyznap_2023-03-20_01:00:01_hourly...
Mar 20 12:18:02 INFO: Deleting snapshot z2/backup/home/cfs@pyznap_2023-03-20_00:30:01_hourly...
Mar 20 12:18:02 INFO: Deleting snapshot z2/backup/home/cfs@pyznap_2023-03-20_12:15:02_frequent...
Mar 20 12:18:02 INFO: Deleting snapshot z2/backup/home/cfs@pyznap_2023-03-20_12:14:50_frequent...
Mar 20 12:18:02 INFO: Deleting snapshot z2/backup/home/cfs@pyznap_2023-03-20_12:09:44_frequent...
Mar 20 12:18:02 INFO: Deleting snapshot z2/backup/home/cfs@pyznap_2023-03-20_12:01:12_frequent...
Mar 20 12:18:02 INFO: Deleting snapshot z2/backup/home/root@pyznap_2023-03-20_12:00:01_hourly...
Mar 20 12:18:02 INFO: Deleting snapshot z2/backup/home/root@pyznap_2023-03-20_11:00:01_hourly...
Mar 20 12:18:02 INFO: Deleting snapshot z2/backup/home/root@pyznap_2023-03-20_10:00:02_hourly...
Mar 20 12:18:03 INFO: Deleting snapshot z2/backup/home/root@pyznap_2023-03-20_09:00:01_hourly...
Mar 20 12:18:03 INFO: Deleting snapshot z2/backup/home/root@pyznap_2023-03-20_08:00:01_hourly...
Mar 20 12:18:03 INFO: Deleting snapshot z2/backup/home/root@pyznap_2023-03-20_07:00:01_hourly...
Mar 20 12:18:03 INFO: Deleting snapshot z2/backup/home/root@pyznap_2023-03-20_06:00:01_hourly...
Mar 20 12:18:03 INFO: Deleting snapshot z2/backup/home/root@pyznap_2023-03-20_05:00:01_hourly...
Mar 20 12:18:03 INFO: Deleting snapshot z2/backup/home/root@pyznap_2023-03-20_04:00:01_hourly...
Mar 20 12:18:03 INFO: Deleting snapshot z2/backup/home/root@pyznap_2023-03-20_03:00:01_hourly...
Mar 20 12:18:03 INFO: Deleting snapshot z2/backup/home/root@pyznap_2023-03-20_02:00:01_hourly...
Mar 20 12:18:03 INFO: Deleting snapshot z2/backup/home/root@pyznap_2023-03-20_01:00:01_hourly...
Mar 20 12:18:04 INFO: Deleting snapshot z2/backup/home/root@pyznap_2023-03-20_00:30:01_hourly...
Mar 20 12:18:04 INFO: Deleting snapshot z2/backup/home/root@pyznap_2023-03-20_12:15:02_frequent...
Mar 20 12:18:04 INFO: Deleting snapshot z2/backup/home/root@pyznap_2023-03-20_12:14:50_frequent...
Mar 20 12:18:04 INFO: Deleting snapshot z2/backup/home/root@pyznap_2023-03-20_12:09:44_frequent...
Mar 20 12:18:04 INFO: Deleting snapshot z2/backup/home/root@pyznap_2023-03-20_12:01:12_frequent...
Mar 20 12:18:04 INFO: Deleting snapshot z2/backup/home/root@pyznap_2023-03-20_12:01:12_frequent...                                                                                                                                                               Mar 20 12:18:04 INFO: Deleting snapshot z2/backup/l@pyznap_2023-03-20_12:00:01_hourly...                                                                                                                                                                         Mar 20 12:18:04 INFO: Deleting snapshot z2/backup/l@pyznap_2023-03-20_11:00:01_hourly...                                                                                                                                                                         Mar 20 12:18:04 INFO: Deleting snapshot z2/backup/l@pyznap_2023-03-20_10:00:02_hourly...                                                                                                                                                                         Mar 20 12:18:04 INFO: Deleting snapshot z2/backup/l@pyznap_2023-03-20_09:00:01_hourly...                                                                                                                                                                         Mar 20 12:18:04 INFO: Deleting snapshot z2/backup/l@pyznap_2023-03-20_08:00:01_hourly...                                                                                                                                                                         Mar 20 12:18:05 INFO: Deleting snapshot z2/backup/l@pyznap_2023-03-20_07:00:01_hourly...                                                                                                                                                                         Mar 20 12:18:05 INFO: Deleting snapshot z2/backup/l@pyznap_2023-03-20_06:00:01_hourly...                                                                                                                                                                         Mar 20 12:18:05 INFO: Deleting snapshot z2/backup/l@pyznap_2023-03-20_05:00:01_hourly...                                                                                                                                                                         Mar 20 12:18:05 INFO: Deleting snapshot z2/backup/l@pyznap_2023-03-20_04:00:01_hourly...                                                                                                                                                                         Mar 20 12:18:05 INFO: Deleting snapshot z2/backup/l@pyznap_2023-03-20_03:00:01_hourly...                                                                                                                                                                         Mar 20 12:18:05 INFO: Deleting snapshot z2/backup/l@pyznap_2023-03-20_02:00:01_hourly...                                                                                                                                                                         Mar 20 12:18:05 INFO: Deleting snapshot z2/backup/l@pyznap_2023-03-20_01:00:01_hourly...                                                                                                                                                                         Mar 20 12:18:05 INFO: Deleting snapshot z2/backup/usr@pyznap_2023-03-20_12:00:01_hourly...                                                                                                                                                                       Mar 20 12:18:05 INFO: Deleting snapshot z2/backup/usr@pyznap_2023-03-20_11:00:02_hourly...                                                                                                                                                                       Mar 20 12:18:06 INFO: Deleting snapshot z2/backup/usr@pyznap_2023-03-20_10:00:02_hourly...                                                                                                                                                                       Mar 20 12:18:06 INFO: Deleting snapshot z2/backup/usr@pyznap_2023-03-20_09:00:01_hourly...                                                                                                                                                                       Mar 20 12:18:06 INFO: Deleting snapshot z2/backup/usr@pyznap_2023-03-20_08:00:01_hourly...                                                                                                                                                                       Mar 20 12:18:06 INFO: Deleting snapshot z2/backup/usr@pyznap_2023-03-20_07:00:01_hourly...                                                                                                                                                                       Mar 20 12:18:06 INFO: Deleting snapshot z2/backup/usr@pyznap_2023-03-20_06:00:02_hourly...                                                                                                                                                                       Mar 20 12:18:06 INFO: Deleting snapshot z2/backup/usr@pyznap_2023-03-20_05:00:01_hourly...                                                                                                                                                                       Mar 20 12:18:06 INFO: Deleting snapshot z2/backup/usr@pyznap_2023-03-20_04:00:02_hourly...                                                                                                                                                                       Mar 20 12:18:06 INFO: Deleting snapshot z2/backup/usr@pyznap_2023-03-20_03:00:01_hourly...                                                                                                                                                                       Mar 20 12:18:06 INFO: Deleting snapshot z2/backup/usr@pyznap_2023-03-20_02:00:01_hourly...                                                                                                                                                                       Mar 20 12:18:07 INFO: Deleting snapshot z2/backup/usr@pyznap_2023-03-20_01:00:01_hourly...                                                                                                                                                                       Mar 20 12:18:07 INFO: Deleting snapshot z2/backup/usr/local@pyznap_2023-03-20_12:00:01_hourly...                                                                                                                                                                 Mar 20 12:18:07 INFO: Deleting snapshot z2/backup/usr/local@pyznap_2023-03-20_11:00:02_hourly...                                                                                                                                                                 Mar 20 12:18:07 INFO: Deleting snapshot z2/backup/usr/local@pyznap_2023-03-20_10:00:02_hourly...                                                                                                                                                                 Mar 20 12:18:07 INFO: Deleting snapshot z2/backup/usr/local@pyznap_2023-03-20_09:00:01_hourly...                                                                                                                                                                 Mar 20 12:18:07 INFO: Deleting snapshot z2/backup/usr/local@pyznap_2023-03-20_08:00:01_hourly...                                                                                                                                                                 Mar 20 12:18:07 INFO: Deleting snapshot z2/backup/usr/local@pyznap_2023-03-20_07:00:01_hourly...                                                                                                                                                                 Mar 20 12:18:07 INFO: Deleting snapshot z2/backup/usr/local@pyznap_2023-03-20_06:00:02_hourly...                                                                                                                                                                 Mar 20 12:18:08 INFO: Deleting snapshot z2/backup/usr/local@pyznap_2023-03-20_05:00:01_hourly...                                                                                                                                                                 Mar 20 12:18:08 INFO: Deleting snapshot z2/backup/usr/local@pyznap_2023-03-20_04:00:02_hourly...                                                                                                                                                                 Mar 20 12:18:08 INFO: Deleting snapshot z2/backup/usr/local@pyznap_2023-03-20_03:00:01_hourly...                                                                                                                                                                 Mar 20 12:18:08 INFO: Deleting snapshot z2/backup/usr/local@pyznap_2023-03-20_02:00:01_hourly...                                                                                                                                                                 Mar 20 12:18:08 INFO: Deleting snapshot z2/backup/usr/local@pyznap_2023-03-20_01:00:01_hourly...                                                                                                                                                                 Mar 20 12:18:08 INFO: Deleting snapshot z2/backup/var@pyznap_2023-03-20_12:00:01_hourly...                                                                                                                                                                       Mar 20 12:18:08 INFO: Deleting snapshot z2/backup/var@pyznap_2023-03-20_11:00:02_hourly...                                                                                                                                                                       Mar 20 12:18:08 INFO: Deleting snapshot z2/backup/var@pyznap_2023-03-20_10:00:02_hourly...                                                                                                                                                                       Mar 20 12:18:08 INFO: Deleting snapshot z2/backup/var@pyznap_2023-03-20_09:00:01_hourly...                                                                                                                                                                       Mar 20 12:18:09 INFO: Deleting snapshot z2/backup/var@pyznap_2023-03-20_08:00:01_hourly...                                                                                                                                                                       Mar 20 12:18:09 INFO: Deleting snapshot z2/backup/var@pyznap_2023-03-20_07:00:02_hourly...                                                                                                                                                                       Mar 20 12:18:09 INFO: Deleting snapshot z2/backup/var@pyznap_2023-03-20_06:00:02_hourly...                                                                                                                                                                       Mar 20 12:18:09 INFO: Deleting snapshot z2/backup/var@pyznap_2023-03-20_05:00:01_hourly...                                                                                                                                                                       Mar 20 12:18:09 INFO: Deleting snapshot z2/backup/var@pyznap_2023-03-20_04:00:02_hourly...                                                                                                                                                                       Mar 20 12:18:09 INFO: Deleting snapshot z2/backup/var@pyznap_2023-03-20_03:00:01_hourly...                                                                                                                                                                       Mar 20 12:18:09 INFO: Deleting snapshot z2/backup/var@pyznap_2023-03-20_02:00:01_hourly...                                                                                                                                                                       Mar 20 12:18:09 INFO: Deleting snapshot z2/backup/var@pyznap_2023-03-20_01:00:01_hourly...                                                                                                                                                                       Mar 20 12:18:09 INFO: Deleting snapshot z2/backup/var/cache@pyznap_2023-03-20_12:00:01_hourly...                                                                                                                                                                 Mar 20 12:18:10 INFO: Deleting snapshot z2/backup/var/cache@pyznap_2023-03-20_11:00:02_hourly...                                                                                                                                                                 Mar 20 12:18:10 INFO: Deleting snapshot z2/backup/var/cache@pyznap_2023-03-20_10:00:02_hourly...                                                                                                                                                                 Mar 20 12:18:10 INFO: Deleting snapshot z2/backup/var/cache@pyznap_2023-03-20_09:00:01_hourly...                                                                                                                                                                 Mar 20 12:18:10 INFO: Deleting snapshot z2/backup/var/cache@pyznap_2023-03-20_08:00:01_hourly...                                                                                                                                                                 Mar 20 12:18:10 INFO: Deleting snapshot z2/backup/var/cache@pyznap_2023-03-20_07:00:02_hourly...                                                                                                                                                                 Mar 20 12:18:10 INFO: Deleting snapshot z2/backup/var/cache@pyznap_2023-03-20_06:00:02_hourly...                                                                                                                                                                 Mar 20 12:18:10 INFO: Deleting snapshot z2/backup/var/cache@pyznap_2023-03-20_05:00:01_hourly...                                                                                                                                                                 Mar 20 12:18:10 INFO: Deleting snapshot z2/backup/var/cache@pyznap_2023-03-20_04:00:02_hourly...                                                                                                                                                                 Mar 20 12:18:10 INFO: Deleting snapshot z2/backup/var/cache@pyznap_2023-03-20_03:00:01_hourly...                                                                                                                                                                 Mar 20 12:18:11 INFO: Deleting snapshot z2/backup/var/cache@pyznap_2023-03-20_02:00:01_hourly...                                                                                                                                                                 Mar 20 12:18:11 INFO: Deleting snapshot z2/backup/var/cache@pyznap_2023-03-20_01:00:01_hourly...                                                                                                                                                                 Mar 20 12:18:11 INFO: Deleting snapshot z2/backup/var/games@pyznap_2023-03-20_12:00:01_hourly...                                                                                                                                                                 Mar 20 12:18:11 INFO: Deleting snapshot z2/backup/var/games@pyznap_2023-03-20_11:00:02_hourly...                                                                                                                                                                 Mar 20 12:18:11 INFO: Deleting snapshot z2/backup/var/games@pyznap_2023-03-20_10:00:02_hourly...                                                                                                                                                                 Mar 20 12:18:11 INFO: Deleting snapshot z2/backup/var/games@pyznap_2023-03-20_09:00:01_hourly...                                                                                                                                                                 Mar 20 12:18:11 INFO: Deleting snapshot z2/backup/var/games@pyznap_2023-03-20_08:00:01_hourly...                                                                                                                                                                 Mar 20 12:18:11 INFO: Deleting snapshot z2/backup/var/games@pyznap_2023-03-20_07:00:02_hourly...                                                                                                                                                                 Mar 20 12:18:11 INFO: Deleting snapshot z2/backup/var/games@pyznap_2023-03-20_06:00:02_hourly...                                                                                                                                                                 Mar 20 12:18:11 INFO: Deleting snapshot z2/backup/var/games@pyznap_2023-03-20_05:00:01_hourly...                                                                                                                                                                 Mar 20 12:18:11 INFO: Deleting snapshot z2/backup/var/games@pyznap_2023-03-20_04:00:02_hourly...                                                                                                                                                                 Mar 20 12:18:12 INFO: Deleting snapshot z2/backup/var/games@pyznap_2023-03-20_03:00:01_hourly...                                                                                                                                                                 Mar 20 12:18:12 INFO: Deleting snapshot z2/backup/var/games@pyznap_2023-03-20_02:00:01_hourly...                                                                                                                                                                 Mar 20 12:18:12 INFO: Deleting snapshot z2/backup/var/games@pyznap_2023-03-20_01:00:01_hourly... 
Mar 20 12:18:12 INFO: Deleting snapshot z2/backup/var/lib@pyznap_2023-03-20_12:00:01_hourly...                                                                                                                                                                   Mar 20 12:18:12 INFO: Deleting snapshot z2/backup/var/lib@pyznap_2023-03-20_11:00:02_hourly...                                                                                                                                                                   Mar 20 12:18:12 INFO: Deleting snapshot z2/backup/var/lib@pyznap_2023-03-20_10:00:02_hourly...                                                                                                                                                                   Mar 20 12:18:12 INFO: Deleting snapshot z2/backup/var/lib@pyznap_2023-03-20_09:00:01_hourly...                                                                                                                                                                   Mar 20 12:18:12 INFO: Deleting snapshot z2/backup/var/lib@pyznap_2023-03-20_08:00:01_hourly...                                                                                                                                                                   Mar 20 12:18:12 INFO: Deleting snapshot z2/backup/var/lib@pyznap_2023-03-20_07:00:02_hourly...                                                                                                                                                                   Mar 20 12:18:13 INFO: Deleting snapshot z2/backup/var/lib@pyznap_2023-03-20_06:00:02_hourly...                                                                                                                                                                   Mar 20 12:18:13 INFO: Deleting snapshot z2/backup/var/lib@pyznap_2023-03-20_05:00:01_hourly...                                                                                                                                                                   Mar 20 12:18:13 INFO: Deleting snapshot z2/backup/var/lib@pyznap_2023-03-20_04:00:02_hourly...                                                                                                                                                                   Mar 20 12:18:13 INFO: Deleting snapshot z2/backup/var/lib@pyznap_2023-03-20_03:00:01_hourly...                                                                                                                                                                   Mar 20 12:18:13 INFO: Deleting snapshot z2/backup/var/lib@pyznap_2023-03-20_02:00:01_hourly...                                                                                                                                                                   Mar 20 12:18:13 INFO: Deleting snapshot z2/backup/var/lib@pyznap_2023-03-20_01:00:01_hourly...                                                                                                                                                                   Mar 20 12:18:13 INFO: Deleting snapshot z2/backup/var/lib/AccountsService@pyznap_2023-03-20_12:00:01_hourly...                                                                                                                                                   Mar 20 12:18:13 INFO: Deleting snapshot z2/backup/var/lib/AccountsService@pyznap_2023-03-20_11:00:02_hourly...                                                                                                                                                   Mar 20 12:18:13 INFO: Deleting snapshot z2/backup/var/lib/AccountsService@pyznap_2023-03-20_10:00:02_hourly...                                                                                                                                                   Mar 20 12:18:14 INFO: Deleting snapshot z2/backup/var/lib/AccountsService@pyznap_2023-03-20_09:00:01_hourly...                                                                                                                                                   Mar 20 12:18:14 INFO: Deleting snapshot z2/backup/var/lib/AccountsService@pyznap_2023-03-20_08:00:01_hourly...                                                                                                                                                   Mar 20 12:18:14 INFO: Deleting snapshot z2/backup/var/lib/AccountsService@pyznap_2023-03-20_07:00:02_hourly...                                                                                                                                                   Mar 20 12:18:14 INFO: Deleting snapshot z2/backup/var/lib/AccountsService@pyznap_2023-03-20_06:00:02_hourly...                                                                                                                                                   Mar 20 12:18:14 INFO: Deleting snapshot z2/backup/var/lib/AccountsService@pyznap_2023-03-20_05:00:01_hourly...                                                                                                                                                   Mar 20 12:18:14 INFO: Deleting snapshot z2/backup/var/lib/AccountsService@pyznap_2023-03-20_04:00:02_hourly...                                                                                                                                                   Mar 20 12:18:14 INFO: Deleting snapshot z2/backup/var/lib/AccountsService@pyznap_2023-03-20_03:00:01_hourly...                                                                                                                                                   Mar 20 12:18:14 INFO: Deleting snapshot z2/backup/var/lib/AccountsService@pyznap_2023-03-20_02:00:01_hourly...                                                                                                                                                   Mar 20 12:18:15 INFO: Deleting snapshot z2/backup/var/lib/AccountsService@pyznap_2023-03-20_01:00:01_hourly...                                                                                                                                                   Mar 20 12:18:15 INFO: Deleting snapshot z2/backup/var/lib/NetworkManager@pyznap_2023-03-20_12:00:01_hourly...                                                                                                                                                    Mar 20 12:18:15 INFO: Deleting snapshot z2/backup/var/lib/NetworkManager@pyznap_2023-03-20_11:00:02_hourly...                                                                                                                                                    Mar 20 12:18:15 INFO: Deleting snapshot z2/backup/var/lib/NetworkManager@pyznap_2023-03-20_10:00:02_hourly...                                                                                                                                                    Mar 20 12:18:15 INFO: Deleting snapshot z2/backup/var/lib/NetworkManager@pyznap_2023-03-20_09:00:01_hourly...                                                                                                                                                    Mar 20 12:18:15 INFO: Deleting snapshot z2/backup/var/lib/NetworkManager@pyznap_2023-03-20_08:00:01_hourly...                                                                                                                                                    Mar 20 12:18:15 INFO: Deleting snapshot z2/backup/var/lib/NetworkManager@pyznap_2023-03-20_07:00:02_hourly...                                                                                                                                                    Mar 20 12:18:15 INFO: Deleting snapshot z2/backup/var/lib/NetworkManager@pyznap_2023-03-20_06:00:02_hourly...                                                                                                                                                    Mar 20 12:18:15 INFO: Deleting snapshot z2/backup/var/lib/NetworkManager@pyznap_2023-03-20_05:00:01_hourly...                                                                                                                                                    Mar 20 12:18:15 INFO: Deleting snapshot z2/backup/var/lib/NetworkManager@pyznap_2023-03-20_04:00:02_hourly...                                                                                                                                                    Mar 20 12:18:16 INFO: Deleting snapshot z2/backup/var/lib/NetworkManager@pyznap_2023-03-20_03:00:01_hourly...                                                                                                                                                    Mar 20 12:18:16 INFO: Deleting snapshot z2/backup/var/lib/NetworkManager@pyznap_2023-03-20_02:00:01_hourly...                                                                                                                                                    Mar 20 12:18:16 INFO: Deleting snapshot z2/backup/var/lib/NetworkManager@pyznap_2023-03-20_01:00:01_hourly...                                                                                                                                                    Mar 20 12:18:16 INFO: Deleting snapshot z2/backup/var/lib/nfs@pyznap_2023-03-20_12:00:01_hourly...                                                                                                                                                               Mar 20 12:18:16 INFO: Deleting snapshot z2/backup/var/lib/nfs@pyznap_2023-03-20_11:00:02_hourly...                                                                                                                                                               Mar 20 12:18:16 INFO: Deleting snapshot z2/backup/var/lib/nfs@pyznap_2023-03-20_10:00:02_hourly...                                                                                                                                                               Mar 20 12:18:16 INFO: Deleting snapshot z2/backup/var/lib/nfs@pyznap_2023-03-20_09:00:01_hourly...                                                                                                                                                               Mar 20 12:18:16 INFO: Deleting snapshot z2/backup/var/lib/nfs@pyznap_2023-03-20_08:00:01_hourly...                                                                                                                                                               Mar 20 12:18:16 INFO: Deleting snapshot z2/backup/var/lib/nfs@pyznap_2023-03-20_07:00:02_hourly...                                                                                                                                                               Mar 20 12:18:17 INFO: Deleting snapshot z2/backup/var/lib/nfs@pyznap_2023-03-20_06:00:02_hourly...                                                                                                                                                               Mar 20 12:18:17 INFO: Deleting snapshot z2/backup/var/lib/nfs@pyznap_2023-03-20_05:00:01_hourly...                                                                                                                                                               Mar 20 12:18:17 INFO: Deleting snapshot z2/backup/var/lib/nfs@pyznap_2023-03-20_04:00:02_hourly...

My configuration:

[z0/ROOT]
frequent = 4
hourly = 24
daily = 7
weekly = 4
monthly = 6
yearly = 1
snap = yes
clean = yes
dest = z2/backup/ROOT
dest_auto_create = yes

[z0/usr]
frequent = 0
hourly = 12
daily = 3
weekly = 3
monthly = 2
yearly = 0
snap = yes
clean = yes
dest = z2/backup/usr
dest_auto_create = yes

[z0/var]
frequent = 0
hourly = 12
daily = 3
weekly = 3
monthly = 2
yearly = 0
snap = yes
clean = yes
dest = z2/backup/var
exclude = z0/var/lib/docker z0/var/lib/docker/*
dest_auto_create = yes

[z0/l]
frequent = 0
hourly = 12
daily = 3
weekly = 3
monthly = 6
yearly = 1
snap = yes
clean = yes
dest = z2/backup/l
dest_auto_create = yes

[z0/home]
frequent = 4
hourly = 24
daily = 7
weekly = 4
monthly = 6
yearly = 1
snap = yes
clean = yes
dest = z2/backup/home
dest_auto_create = yes

#
# Backup
#
[z2/backup/ROOT]
frequent = 0
hourly = 0
daily = 21
weekly = 8
monthly = 9
yearly = 2
snap = no
clean = yes

[z2/backup/usr]
frequent = 0
hourly = 0
daily = 21
weekly = 6
monthly = 4
yearly = 0
snap = no
clean = yes

[z2/backup/var]
frequent = 0
hourly = 0
daily = 21
weekly = 6
monthly = 4
yearly = 0
snap = no
clean = yes

[z2/backup/l]
frequent = 0
hourly = 0
daily = 21
weekly = 8
monthly = 9
yearly = 0
snap = no
clean = yes

[z2/backup/home]
frequent = 0
hourly = 0
daily = 21
weekly = 8
monthly = 9
yearly = 2
snap = no
clean = yes
yboetz commented 1 year ago

There is currently no way to avoid this. pyznap send will send all snapshots, you cannot exclude hourly/frequent ones. So send will always send those and snap will immediately delete them again. I have the same setup and just let pyznap delete the hourly/frequent ones again, it only happens once per day. To avoid this the only option is to always keep the same/more snapshots on the dest than on the source, so also keep frequent and hourly ones on your backup. There's no disadvantage to that, zfs can handle a large amount of snapshots. You don't need to keep 48 hourly snapshots though, since if you miss one backup it can always do incremental backup from the last daily one instead of a hourly.

jcferretti commented 1 year ago

Would you entertain a PR for an additional parameter to specify a list of snapshot patterns to exclude?