forked from digint/btrbk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
485 lines (403 loc) · 19.9 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
btrbk-0.31.2
* MIGRATION
- Update ssh_filter_btrbk.sh on remote hosts.
* ssh_filter_btrbk.sh: Fix security vulnerability.
Specialy crafted commands may be executed without being propely
checked. Applies to remote hosts filtering ssh commands using
ssh_filter_btrbk.sh in authorized_keys.
* Warn if no subvolume defined in config (close #378).
btrbk-0.31.1
* Bugfix: duplicate snapshot location check (close #360).
* Bugfix: action "list all" (close #367).
* btrbk-mail: optionally prefix command output lines.
btrbk-0.31.0
* Add action "extents [diff]": print accurate disk space usage based
on block regions (extent data, FIEMAP ioctl).
* Improve action "list" and "stats" table output (close #334).
* Add subcommand "list all", make default for "list" action.
* Change semantics on output of action "list": show only btrbk
snapshots/backups (close #333).
* Print human readable units in action "diff" (close #345).
* Allow custom table format definitions from command line.
* Add Bash completion (close #343).
* Add support for zstd compression (close #358).
* Bugfix: fs_path fallback for action "origin" and logging.
* Bugfix: makefile bin-links race (close #341).
btrbk-0.30.0
* MIGRATION
- In your scripts (e.g. cron jobs, systemd units), replace
"/usr/sbin/btrbk" with "/usr/bin/btrbk".
* Install to "/usr/bin" instead of "/usr/sbin".
* Support IPv6 addresses (close #332).
* Add "compat busybox" configuration option (close #327).
* Create "lsbtr" symlink (alias for "btrbk ls").
* Improve action "ls" (allow url, bugfixes).
* Add "backend_local_user" configuration option.
* btrbk-mail: add more elaborated email and rsync options.
* Minor bugfixes and framework improvements.
btrbk-0.29.1
* Allow multiple path arguments for action "ls".
* Change default output to format=short for action "ls".
* ssh_filter_btrbk.sh: exclude "btrfs subvolume show|list" from
restrict-path (close #309).
* Bugfix: fix filter statement match on wildcards (close #311).
* Fix regression: print ssh errors only if needed.
btrbk-0.29.0
* MIGRATION
- If stream_buffer or rate_limit is configured, please install
"mbuffer" (version >= 20180505). Note that mbuffer is only
required on remote hosts if stream_buffer_remote or
rate_limit_remote is set.
- In order to mimic old behavior, replace rate_limit with
rate_limit_remote, and read btrbk.conf(5).
- If you are using table output other than --format=raw in your
scripts, note that the column headings changed from pretty
two-line to (uppercase) one-line format. Either add --pretty
option to mimic old behavior, or adapt your scripts.
* Dropped run-time dependency on "pv" (in favor of "mbuffer").
* Combined stream_buffer and rate_limit: for rate_limit, use
"mbuffer" (on local host) instead of "pv" (on source host).
* Add stream_buffer_remote and rate_limit_remote options.
* Use "mbuffer" instead of "pv" for --progress display.
* Add stream_buffer functionality for raw targets.
* Add action "ls": list all btrfs subvolumes below given path.
* Change table output: print single-line, uppercase headings.
* ssh_filter_btrbk.sh: whitelist mkdir if -t,--target option is set,
used by "btrbk archive" action (close #297).
* Bugfix: handle subvolumes with special characters (close #288).
* Bugfix: don't display "<no_action>" in backup summary if volume is
skipped by --exclude or noauto (close #291).
* Bugfix: systemd: Use WantedBy=timers.target instead of
WantedBy=multi-user.target in btrbk.timer (close #293).
btrbk-0.28.3
* Bugfix: return exitcode=10 if action skipped by stray subvolumes
(close: #285).
* Bugfix: correctly handle root subvolumes having uuid.
* Bugfix: fix mount point resolving.
btrbk-0.28.2
* Fix regression: crash if raw target dir is empty (close #281).
* Bugfix: honor incremental_resolve on targets: resolve from
mountpoint instead of directory.
* Bugfix: handle directories named "0" correctly.
btrbk-0.28.1
* Fix regression: crash if deep parent/child relations exceed
depth=100 (close #279).
* Remove pre-generated man pages, requires "asciidoctor" for builds.
btrbk-0.28.0
* MIGRATION
- Replace "ssh_port" options with "ssh://hostname[:port]" notation
on "volume" or "target" declarations.
- Check filter statements in your scripts ("btrbk run <filter>"),
especially when using groups having the same name as subvolumes.
* Fix table format "resolved" (btrbk list snapshots|backups).
* Add btrbk-verify: tool for automated backup integrity check based
on rsync (close #256).
* Use "ssh://hostname[:port]" notation instead of ambiguous
"ssh_port" option (now deprecated).
* Bugfix: correctly handle multiple volume sections with same host,
but distinct port numbers (virtual machines setups, close #233).
* Remove selected rows ("*host", "*port") from table output if all
values are empty.
* Consider all parent/child relations (close #255).
* Disallow unrelated parents for btrfs-send if incremental=strict.
* Add clone sources to btrfs-send if necessary.
* Add "incremental_resolve" configuration option.
* Add "incremental_clones" configuration option.
* Add "noauto" configuration option.
* Add "--exclude" command line option.
* Make target_type optional, defaults to "send-receive".
* Use more sophisticated filter arguments.
* Allow whitespace separated "group" option.
btrbk-0.27.2
* Bump dependency >= btrfs-progs-4.12 (as of btrbk-0.27.0).
* Trigger autofs mount while resolving mountpoints (close #259).
* Bugfix: fix scheduler when overriding "target_preserve_min" in
combination with global "target" section.
btrbk-0.27.1
* MIGRATION
- Update ssh_filter_btrbk.sh on remote hosts if using
backend=btrfs-progs-sudo.
* Bugfix (regression): call "sudo -n readlink" for
backend=btrfs-progs-sudo (close #257).
* Bugfix (regression): fix failing "config print" command.
* Don't print title and blank lines for --format=raw, syslog and
transaction log.
btrbk-0.27.0
* MIGRATION
- Run "btrbk prune --dry-run --print-schedule" and check if any
snapshots/backups would get deleted [1] [2]. If you want to
forcibly preserve a snapshot/backup forever, rename it (btrbk
ignores subvolumes with unknown naming scheme), e.g.:
"mv mysubvol.YYYYMMDD mysubvol.YYYYMMDD.keep_forever"
- Update ssh_filter_btrbk.sh on remote hosts (btrbk always calls
"readlink" and "cat /proc/self/mountinfo").
* Add "preserve_hour_of_day" configuration option (close #202).
* Allow backup of filesystem root using "subvolume ." (close #240).
* Add "-S" command line option (shortcut for --print-schedule).
* Bugfix: correct scheduling of "first weekly backup in month/year"
(close #217) [1] [2].
* Bugfix: add "btrfs filesystem usage" backend mapping (close #222).
* Bugfix: do not fail (exitcode=10) if targets are not accessible on
"btrfs snapshot --preserve".
* Bugfix: if "incremental no" is configured on target, do not keep
latest common snapshot.
* Enhance internal data structures:
- Allow snapshot_dir to be a mountpoint.
- Search complete target tree for correlated subvolumes.
- Include snapshots from all mountpoints as candidates (disabled
due to uptream bug: github.com/kdave/btrfs-progs/issues/96).
- Read /proc/self/mountinfo instead of /proc/self/mounts.
- Always read /proc/self/mountinfo.
- Resolve realpath using readlink(1).
* Fallback to "asciidoctor" for manpage generation (close #219).
[1] https://github.com/digint/btrbk/issues/217
[2] https://github.com/digint/btrbk/commit/719fb5f
btrbk-0.26.1
* Add "archive_exclude" configuration option.
* Add warning on redefined configuration option.
* Bugfix: fix parsing of "openssl_iv_size" configuration option.
* Bugfix: fix filter statement matching for volume=/ (close #209).
btrbk-0.26.0
* MIGRATION
- If you are using raw targets, make sure to run the
"raw_suffix2sidecar" utility in each target directory.
* Support for btrfs-progs v4.13.2: adapt parsing of "btrfs sub list"
output (close #192).
* Add "resume" command, replacement for "-r, --resume-only" command
line option (which is now deprecated).
* Add "snapshot" command (close #150).
* Add "prune" command.
* Add "--preserve-snapshots" and "--preserve-backups" options.
* Add "--wipe" command line option (close #173).
* Change raw backup format (sidecar file instead of uuid in file).
* Honor target_preserve for raw targets (delete raw targets).
* Add symmetric encryption for raw targets (close #157).
* Add "{snapshot,target,archive}_qgroup_destroy" configuration
options (close #49, #189).
* Do not run in "perl taint mode" by default: remove "perl -T" in
hashbang; hardcode $PATH only if taint mode is enabled.
* Remove "duration" column from transaction_log/transaction_syslog.
* Resolve ancestors (recursive on parent_uuid chain) when searching
for latest common subvolume.
* Generate man pages from asciidoc (remove raw groff sources).
* Bugfix: ssh_filter_btrbk: accept mbuffer command (stream_buffer).
* Bugfix: print correct (end-)time in transaction_log.
* Bugfix: check path when expanding wildcards (close #181).
* Bugfix: never show failed deletes in summary (close #183).
btrbk-0.25.1
* Support for btrfs-progs v4.12: fix parsing of "btrfs sub show"
output, which now prints relative paths (close #171).
* Add "stream_buffer" configuration option (close #154).
* Bugfix: accept "no" for "transaction_log", "transaction_syslog"
and "lockfile" configuration options.
* Show "up-to-date" status for backups in "stats" command.
* Show "correlated" status instead of "orphaned" in "stats" command.
* Check source subvolumes for readonly and received_uuid flags, and
abort if one of them is set.
btrbk-0.25.0
* MIGRATION
- If you call ssh_filter_btrbk.sh with "--sudo" option, make sure
to set "backend btrfs-progs-sudo" in btrbk.conf for this host.
- If "rate_limit" is enabled, update ssh_filter_btrbk.sh on remote
source hosts, and make sure the "pv" command is available there.
* Allow converting backup disks to source disks (close #114).
* Add "backend btrfs-progs-sudo" configuration option (close #115).
* Show aggregate "size" and "used" for "usage" action (close #119).
* Add "raw_target_split" configuration option (close #125).
* Allow trailing comments in btrbk.conf (close #129).
* Bugfix: rate limiting must be done after compression (close #134).
* raw_target_encrypt: Always set "gpg --no-random-seed-file":
prevents creation of "~/.gnupg/random_seed" with slight perfomance
penalty.
btrbk-0.24.0
* MIGRATION
- update ssh_filter_btrbk.sh on remote hosts if "stream_compress"
is enabled. Also add "--compress" option to ssh_filter_btrbk.sh
invocation if "stream_compress" is enabled.
* Add "stream_compress" configuration option.
* Perform extra metadata check on target subvolume after "btrfs
receive" (adds an additional call to "btrfs subvolume show").
* Bugfix: Replace "realpath" with "readlink" in ssh_filter_btrbk.sh
* Add "raw_target_block_size" configuration option (close #105).
* Add "backend" configuration option (experimental).
* Bugfix: fix "list latest" with no snapshots (close #111).
* Support for btrfs-progs v4.8.3: fix parsing of "btrfs sub show"
output, which has changed for toplevel subvolume.
btrbk-0.23.3
* Replace "realpath -e" with "readlink -e" for mountpoint discovery
(close #92).
* Dynamically set BINDIR in btrbk.service by Makefile.
* Add ChangeLog to DOCDIR in Makefile.
btrbk-0.23.2
* Added "lockfile" configuration option and --lockfile command line
option (close: #81).
* Bugfix: raw targets: correctly handle multiple backups in same
target directory (close: #87).
* Use relative instead of absolute binary calls in btrbk-mail.
btrbk-0.23.1
* Bugfix: set correct parent section when propagating targets
(close: #85).
* Add syslog output of transaction log (close #82).
* Do not print headers to transaction log anymore.
* Explain "orphaned" status in "stats" command, and suppress it on
"list backups" command (close: #76).
btrbk-0.23.0
* INCOMPATIBLE CONFIGURATION:
* Please read "doc/upgrade_to_v0.23.0.md" for details on updating
the configuration file (/etc/btrbk/btrbk.conf).
* Dropped "btrfs_progs_compat" option. Need btrfs-progs >= v3.18.
* Removed "resume_missing" configuration option.
* Create backups only if needed to satisfy retention policy.
* Preserve FIRST backup of hour/day/week/month instead of LAST.
* Replaced "{snapshot,target}_preserve_{daily,weekly,monthly}"
configuration options with "{snapshot,target}_preserve_min" and
"{snapshot,target}_preserve NNh NNd NNw NNm NNy" options.
* Added hourly/yearly retention policies (close: #36, #69).
* Allow regular directories for send-receive targets (close: #77).
* Allow wildcards in subvolume section (close: #71).
* Propagate targets defined in "volume" or "root" context to all
"subvolume" sections (close: #78).
* Added "archive" command (close: #79).
* Changed output format of "origin" command, add table formats.
* Added configuration option "rate_limit" (close: #72).
* Added new timestamp_format "long-iso", having a timezone postfix.
* Added "--print-schedule" command line option.
* Detect interrupted transfers of raw targets (close: #75).
* Always read "readonly" flag (additional call to btrfs-progs).
* Warn on receive targets at unexpected location (instead of abort).
* On incremental send/receive, use all snapshots sharing same
parent_uuid as candidates for "-p <parent>" instead of only older
snapshots. As last resort, use subvolumes in snapshot_dir matching
btrbk file name scheme as candidates (which allows incremental
backups after the parent vanished, e.g. after backup restore).
* Use perl built-in Time::Local instead of Date::Calc.
* Improvements of internal data structures.
btrbk-0.22.2
* Bugfix: fix checks on "btrfs sub show" output, which resulted in
breakage on btrfs-progs < 4.1 (close: #68).
btrbk-0.22.1
* Support for btrfs-progs v4.4 (close: #66).
btrbk-0.22.0
* Bugfix: fix monthly schedule if older than 10 weeks (close: #59).
* Bugfix: fix sprintf used by config option "timestamp_format long"
when using perl-5.22.0 (close: #57).
* Bugfix: fix "--progress" option (close: #64).
* Added "clean" command (close: #61).
* Added "-n, --dry-run" option.
* Added configuration options "raw_target_compress_level",
"raw_target_compress_threads" (close: #60).
* Added "stats" command (close: #54).
* Print "$hostname:$path" instead of "{$hostname}$path" in summary
and logs.
btrbk-0.21.0
* Added transaction log (configuration option "transaction_log").
* Added configuration option "group".
* Allow filtering of all commands by group as well as targets.
* Added "list backups|snapshots|latest|config|source|volume|target"
commands (while removing "tree" command).
* Added "config print" command.
* Added "--format=table|long|raw" and "-t,--table" command line
options, producing tabular and raw (machine-readable) output for
"(dry)run", "tree" and "list" commands.
* Print scheduler details if -v option is set on action run/dryrun.
* Added configuration option "ssh_cipher_spec" (close: #47).
* Added "target raw", with GnuPG and compression support
(experimental).
* Added configuration option "timestamp_format short|long".
* Replaced "info" command with "usage", with tabular output.
* Bugfix: correctly handle "incremental no" option.
* Bugfix: return exit status 10 instead of 0 if one or more backup
tasks aborted.
* Better error handling for send/receive commands (close: #33).
* Hardened ssh_filter_btrbk.sh script: fine-grained access control,
restrict-path option, sudo option (close: #45).
* Added example cron script.
btrbk-0.20.0
* Added configuration option "ssh_port" (close: #39).
* Added configuration option "ssh_compression" (close: #44).
* Added command line option "--progress" (close: #42).
* Bugfix: correct handling of empty "snapshot_dir" (close: #43).
* Accept long options on command line.
* Documentation: added FAQ.
btrbk-0.19.3
* Bugfix: fix sorting of dates in schedule().
* Bugfix: correct parsing of btrfs subvolume list (close: #28).
* Support for btrfs-progs v4.1-rc1.
btrbk-0.19.2
* Bugfix: fix crash when using btrfs-progs < 3.17.3 (close: #24).
btrbk-0.19.1
* Use "cgen" for snapshot comparison.
* Bugfix: fix crash in summary display (close: #22).
btrbk-0.19.0
* Added "snapshot_create onchange", which skips snapshot creation if
the latest snapshot is up-to-date (i.e. has same generation as the
source subvolume).
* Improved handling of command line subvolume filter for "run",
"dryrun" and "tree" actions (close: #21).
* Bugfix: fixed crash in action "diff".
btrbk-0.18.0
* MIGRATION
- update ssh_filter_btrbk.sh on all remote hosts
- update configuration file (/etc/btrbk/btrbk.conf):
- "snapshot_create_always yes" -> "snapshot_create always"
- "snapshot_create_always no" -> "snapshot_create ondemand"
* Set PATH variable instead of using absolute "/sbin/btrfs" for
compatibility with all linux distros out there, which all install
'btrfs' in different locations (close: #20).
* Added configuration option "snapshot_create", replacing option
"snapshot_create_always". This allows setups with multiple btrbk
instances on several hosts (close: #18).
* Added command line option -r (resume only).
* Catch and display errors from "btrfs subvolume show".
* Include systemd service and timer unit for daily backups.
btrbk-0.17.1
* Bugfix: send/receive: delete possibly left-behind garbled
subvolume on failure. Fail with unrecoverable error if stray
target subvolume is in the way (close: #17).
* Bugfix: assume unreachable target as clean on snapshot creation if
snapshot_create_always is set (close: #19).
btrbk-0.17.0
* New versioning scheme using more common three-level versions.
* Code refactoring: cleanup of data structures and handling of btrfs
subvolume tree, as well as security related code parts.
* Correct handling of symlinks to btrfs subvolumes (close: #12).
* Added configuration option "snapshot_name" (close: #5).
* Log messages now go to stderr, only the summary is printed on
stdout.
* Bugfix: allow "0" as subvolume name (close: #10).
* Bugfix: allow "/" as volume name (close: #15).
* Bugfix: check source AND targets for determining snapshot postfix
(close: #11).
* Bugfix: fixed "diff" action (colses: #14).
* Allow '+' character for subvolume names.
* Filesystems on remote hosts are now printed as
"{my.remote-host.com}" in summary and logs.
btrbk-0.16
* Bugfix: correctly check retention policy for missing backups.
btrbk-0.15
* Added configuration option "btrfs_progs_compat", to be enabled if
using btrfs-progs < 3.17 (close: #6).
* Added configuration option "resume_missing", for automatic resume
of missing backups (close: #8).
* Removed configuration option "receive_log" in favor of printing
errors from "btrfs receive".
* Bugfix: show correct exit code on external command failure.
* Bugfix: no crash if "commit_delete" option is set to "no"
btrbk-0.14
* Bugfix: correctly handle empty target subvolumes (blocker for all
new users; close: #4).
btrbk-0.13
* Bugfix: allow '@' character for subvolume names (blocker for
ubuntu users, since ubuntu prefixes all subvolumes with '@' in its
subvolume layout; close: #3).
btrbk-0.12
* Cleaner and more generic parsing of btrfs subvolume list.
* Bugfix: subvolumes are also allowed for "snapshot_dir" (close:
#1, #2).
btrbk-0.11
* Added option -p (preserve backups).
* Added optional subvolume argument for run/dryrun actions, for
explicit selection of subvolumes to be processed.
* Bugfixes
btrbk-0.10
* Initial revision.