Commit Graph

582 Commits (206e706d85032bdeae0df1d6418c58f8c4d2406b)

Author SHA1 Message Date
Axel Burri a9f1b6b24a change version to 0.25.1 2017-07-30 16:03:58 +02:00
Axel Burri 6cf5d59644 btrbk: add support for btrfs-progs 4.12: do not fail or set realpath_cache for relative paths in btrfs_subvolume_show()
As of btrfs-progs-v4.12, the "btrfs subvolume show" command does not
print the full (absolute, resolved) path anymore [1]. Instead, it prints
the relative path to btrfs root (or "/" if it is the root).

The impact for btrbk is that we cannot fill our realpath_cache in
btrfs_subvolume_show() anymore. This is not fatal, but has the
following consequences:

  - The "check for duplicate snapshot locations" may now miss
    subvolumes specified by symlinks.

  - If multiple "volume" sections point to the same subvolume (e.g. if
    specified using symlinks) an additional "btrfs subvolume list" is
    called. Note that the subvolume will still be recognized as
    identical, and the btr_tree will not be rebuilt.

  [1] btrfs-progs commit: b7df24aa5cddc4802b9938f56372b73869775cd9
2017-07-30 15:25:32 +02:00
Axel Burri 26682213e2 btrbk: cleanup btrfs_subvolume_list() and comments 2017-07-30 15:03:23 +02:00
Axel Burri 356231bc2a btrbk: abort if source subvolume has readonly or received_uuid flag 2017-07-29 19:03:23 +02:00
Axel Burri c0c546eb4e btrbk: stats command: show "correlated" status instead of "orphaned" (inverse logic which caused a lot of confusion) 2017-06-25 21:16:08 +02:00
Axel Burri 15bae5e051 btrbk: stats command: print up-to-date status on backups 2017-06-25 21:14:03 +02:00
Axel Burri b2cc99b0fb btrbk: bugfix: accept "no" for "transaction_log", "transaction_syslog" and "lockfile" configuration options 2017-06-25 18:06:06 +02:00
Axel Burri 315b3f24a1 btrbk: add config option "stream_buffer <size>". if set, pipes send stream through "mbuffer -m <size>" 2017-06-08 12:35:22 +02:00
Axel Burri 7436d9432c change version to 0.25.0 2017-03-18 16:53:07 +01:00
Axel Burri d31ffb8cb0 btrbk: allow trailing comments in btrbk.conf 2017-03-18 16:34:53 +01:00
Axel Burri 358a2b1169 btrbk: cleanup: btrfs_send_to_file() takes no more additional options (all info is fetched directly from source/target config) 2017-03-18 15:06:48 +01:00
Axel Burri 28c65e4675 btrbk: add raw_target_split option, using "split" instead of "dd" to write raw files 2017-03-18 14:47:43 +01:00
Axel Burri 3b7ede773a btrbk: bugfix: make sure rate limiting comes after compression in cmd_pipe 2017-03-18 12:18:47 +01:00
Axel Burri cb82bd5fa4 btrbk: add supoort for "backend btrfs-progs-sudo" option; adaptions in ssh_filter_btrbk.sh 2017-01-04 15:04:22 +01:00
Ian Kelling d02f67a924 btrbk: get_receive_targets: also match "src.received_uuid == target.uuid"
This gets important when using an old backup disk as source.

In terms of btrfs send/receive, all subvolumes matching "uuid /
received_uuid" are valid backups.

Merged (amend) from pull request: #116

Verified by Axel Burri <axel@tty0.ch>
2017-01-04 12:41:05 +01:00
Axel Burri 79637de5aa btrbk: raw_target_encrypt: always set "gpg --no-random-seed-file": prevents creation of "~/.gnupg/random_seed" with slight perfomance penalty.
We set "--no-random-seed-file" because one of the btrbk
design principles is to not create any files unasked. Enabling
"--no-random-seed-file" creates ~/.gnupg/random_seed, and as
such depends on $HOME to be set correctly (think on running in
cron). From gpg2(1) man page:
  --no-random-seed-file GnuPG uses a file to store its
  internal random pool over invocations This makes random
  generation faster; however sometimes write operations are not
  desired. This option can be used to achieve that with the cost
  of slower random generation.
2017-01-03 13:41:39 +01:00
Axel Burri b69e9ebf34 btrbk: show aggregate "size" and "used" for "usage" action 2016-12-11 15:36:48 +01:00
Axel Burri da849b37ae change version to 0.24.0 2016-11-16 15:32:17 +01:00
Axel Burri ec63e9932b btrbk: support for btrfs-progs v4.8.3
Fix parsing of "btrfs sub show" output, which has changed for toplevel
subvolume.
2016-11-16 15:02:49 +01:00
Axel Burri 57be688f6b btrbk: bugfix: fix "list latest" with no snapshots 2016-11-12 13:21:33 +01:00
Axel Burri a8a311c8c7 btrbk: add "backend" configuration option: support for distinct binaries from btrfs-progs-btrbk
btrfs-progs-btrbk sources (fork of btrfs-progs) can be found at:

https://github.com/digint/btrfs-progs-btrbk
2016-08-29 18:40:42 +02:00
Axel Burri dc5dee3121 btrbk: use loglevel trace (instead of debug) for repeated WARN_ONCE 2016-08-29 15:03:56 +02:00
Axel Burri 1aa208151b btrbk: improve check_file(): sanitize only on demand 2016-08-29 15:03:20 +02:00
Axel Burri 4c4afe776d btrbk: skip target metadata test if send/receive has errors 2016-08-29 15:03:11 +02:00
Axel Burri 961f96833a btrbk: use "dd" for raw target output, with configurable block size (raw_target_block_size)
We use "dd" instead of shell redirections, as it is common to have
special filesystems (like NFS, SMB, FUSE) mounted on the raw target
path. By using "dd" we make sure to write in reasonably large blocks
(default=128K), which is not always the case when using redirections
(e.g. "gpg > outfile" writes in 8K blocks).

Another approach would be to always pipe through "cat", which uses
st_blksize from fstat(2) (with a minimum of 128K) to determine the
block size.
2016-08-25 13:14:01 +02:00
Axel Burri 3dabb507e6 btrbk: do not set "--compress-algo none" on gpg command if raw_target_compress=no
Note that gpg might still compress (according to OpenPGP standard) if
--compress-algo is not set. This is generally a good thing.
2016-08-25 12:53:12 +02:00
Axel Burri b0feaf4413 btrbk: force disabling of ssh compression (ssh -o compression=no) if stream_compress is set 2016-08-25 12:53:12 +02:00
Axel Burri b49ee61ecd btrbk: run_cmd: cosmetics 2016-08-25 12:53:12 +02:00
Axel Burri 5f530e47e5 btrbk: run_cmd: only perform sanity checks on files (hardcoded parts are considered safe) 2016-08-25 12:53:06 +02:00
Axel Burri 96f0d4c175 btrbk: fix and cleanup stream compression 2016-08-24 15:25:48 +02:00
Axel Burri 13d27c8616 btrbk: perform extra metadata check on target subvolume after "btrfs receive"
Eliminates error cases where "btrfs receive" input is null, at the
cost of an additional call to "btrfs subvolume show".
2016-08-19 17:41:03 +02:00
Axel Burri deeb12c069 ssh_filter_btrbk: allow stream compression if --compress option is set. 2016-08-19 17:36:40 +02:00
Axel Burri 13887837b1 btrbk: add lz4 compression 2016-08-19 16:58:53 +02:00
Axel Burri 3845fa5ec5 btrbk: use format from %compression hash in $raw_postfix_match 2016-08-19 16:58:53 +02:00
Axel Burri 05c54a2390 btrbk: add compression options: pigz, pbzip2, lzo 2016-08-19 16:58:53 +02:00
Axel Burri a019d8a3e3 btrbk: add configuration option "stream_compress"
- add sophisticated stream compression in run_cmd
- add special "compress" cmd_pipe item
- add special "redirect" cmd_pipe item:
  use shell redirection instead of troublesome "dd of=".
- disable ssh_compression if stream_compression is set
2016-08-19 16:56:38 +02:00
Axel Burri 99ff88f82a btrbk: use (and propagate) CONFIG in vinfo instead of hard-setting RSH 2016-08-19 16:54:49 +02:00
Axel Burri 079b947cd6 btrbk: add function WARN_ONCE 2016-08-19 16:48:45 +02:00
Tobias Grosser 84a5c56a83 btrbk: disable compression in gpg
We already perform compression before gpg, such that compressing in gpg
is just a waste of time. Interestingly, it seems gpg is not trying to
recompress gzip[ed] input streams, as for the default gzip compression
this patch does not change performance. However, it is necessary for
the upcoming lz4 compression to show its real benefit.
2016-08-07 13:40:45 +02:00
Axel Burri 9a5e8311be change version to 0.23.3 2016-07-14 01:41:45 +02:00
Axel Burri 796b6bd9bf btrbk: replace "realpath -e" with "readlink -e" for mountpoint discovery 2016-06-18 13:04:43 +02:00
Axel Burri 91d02ca97b change version to 0.23.2 2016-06-07 16:41:41 +02:00
Axel Burri e4a7ba4be5 btrbk: add lockfile support, using perl "flock": add configuration option "lockfile <file>", and command line option "--lockfile"' 2016-06-07 16:17:02 +02:00
Axel Burri 7326b9816c btrbk: bugfix: raw targets: correctly handle multiple backups in same target directory 2016-05-09 12:42:04 +02:00
Axel Burri cb0851c8b6 change version to 0.23.1 2016-05-03 16:21:34 +02:00
Axel Burri 5cd03a8fbf btrbk: remove absolute path to executables, this caused trouble on some distros 2016-05-03 14:34:04 +02:00
Axel Burri 54b5368309 btrbk: code cleanup (remove unneeded code, rename vars) 2016-05-03 13:19:42 +02:00
Axel Burri 12d435d42a btrbk: explain "orphaned" status in "stats" command, and suppress it on "list backups" command 2016-04-30 13:01:12 +02:00
Axel Burri 46f1e5e2e4 btrbk: only load Data::Dumper if needed (log level "trace", or development version); cosmetics 2016-04-28 13:03:15 +02:00
Axel Burri 49ae46d51d btrbk: do not print headers to transaction_log, these are documented in btrbk.conf(5) 2016-04-28 12:51:00 +02:00
Axel Burri e9e398af37 Merge branch 'syslog' 2016-04-28 12:45:13 +02:00
Axel Burri 7e7c28f8f1 btrbk: add eval_quiet(), a simple wrapper around eval, disabling $SIG_(__DIE__) 2016-04-28 12:43:32 +02:00
Axel Burri 082754173c btrbk: bugfix: raw targets: do not inject child if add_btrbk_filename_info() failed 2016-04-25 21:12:33 +02:00
Axel Burri 47eb14f5fb btrbk: syslog: add syslog hack in print_formatted(); remove print-to-scalar hack 2016-04-25 19:40:11 +02:00
Axel Burri c424d917b6 btrbk: syslog: only load Sys::Syslog module if configuration option is set; soft-fail on syslog calls 2016-04-25 18:36:54 +02:00
Hans van Kranenburg 59d96420c8 btrbk: add transaction logging to syslog
Add configuration option transaction_syslog, which can be set to a short
name of a syslog facility, like user or local5. Most of the ones besides
localX do not really make sense, but whatever, let the user decide.

The only logging that is relevant for logging to syslog is the logging
generated inside sub action, so it's easy to hijack all messages in
there and also send them to syslog if needed.

All output is done via print_formatted, which expects a file handle.
So, abuse a file handle to a string to be able to change as less code as
needed for this feature.

Since syslog already adds the timestamps for us, I added a syslog
formatting pattern, which is very similar to tlog, omitting the
timestap.
2016-04-25 17:32:08 +02:00
Axel Burri 89df601ee5 btrbk: allow "<hostname>:<path>" notation for volume and target sections 2016-04-25 16:34:52 +02:00
Axel Burri 702ee8950e btrbk: bugfix: vinfo(): correctly parse url, using check_url() 2016-04-25 15:10:00 +02:00
Axel Burri 357b72bd3f btrbk: code cleanup: check_file() and check_url() do all the sanitize parts 2016-04-25 14:23:15 +02:00
Axel Burri 191284cd43 btrbk: bugfix: set correct parent section when propagating targets 2016-04-24 15:59:17 +02:00
Axel Burri 4ffaf430c5 change version to 0.23.0 2016-04-23 15:06:57 +02:00
Axel Burri 2e8e4ddefc btrbk: cosmetics: change info log of send/receive; change topic line; fix typos 2016-04-23 14:58:08 +02:00
Axel Burri efc260ef91 btrbk: add sanity check on timezone offset; add documentation about implications of long-iso time format 2016-04-23 14:49:12 +02:00
Axel Burri c7dd680537 btrbk: make sure that snapshots/backups with date in the future are never deleted 2016-04-22 20:51:31 +02:00
Axel Burri ecb2307b22 btrbk: send/receive: only inject child if target creation was successful 2016-04-22 20:25:30 +02:00
Axel Burri 3ffa63daba btrbk: bugfix: btrfs_subvolume_show(): quote real_path everywhere 2016-04-22 20:17:26 +02:00
Axel Burri c13c99ada5 btrbk: add new time_format "long-iso", with seconds and timezone offset (iso8601 format); add function timestamp(): remove dependency to POSIX 2016-04-22 19:47:01 +02:00
Axel Burri e824c21f50 btrbk: use build-in Time::Local in combination with localtime() instead of Date::Calc; correctly calculate leap hours 2016-04-20 22:45:11 +02:00
Axel Burri c73dffbd25 btrbk: handle missing Data::Dumper gracefully 2016-04-19 22:12:08 +02:00
Axel Burri 829490f963 btrbk: put btrbk filename info directly to tree node (parse only once)
performance win: factor 2.3
2016-04-19 22:04:07 +02:00
Axel Burri c225231742 btrbk: reuse subvol list for get_receive_targets()
performance win: factor 2.6 !
2016-04-19 22:01:23 +02:00
Axel Burri 2b22524ccd btrbk: sane defaults: xxx_preserve_min defaults to "all", xxx_preserve default to "no" (for backwards compatibility with 0.22.0 default) 2016-04-19 21:37:04 +02:00
Axel Burri 29b9c8fc60 btrbk: action "archive": abort if receive targets of archive candidates exist at unexpected location. makes sure we dont have duplicates on our archives 2016-04-19 21:02:51 +02:00
Axel Burri 5e7a6e5ef4 btrbk: action "archive": delete archives according to archive retention policy 2016-04-19 21:02:51 +02:00
Axel Burri 31f0f97ff0 btrbk: fix info logging for send/receive 2016-04-19 21:02:51 +02:00
Axel Burri 7807fface8 btrbk: cosmetics; s/config_override_opts/config_override_cmdline/g 2016-04-19 21:02:51 +02:00
Axel Burri 2c3997ad0a btrbk: bugfix: action "config print": correctly handle undef options; skip deprecated options 2016-04-19 21:02:47 +02:00
Axel Burri a27f99af46 change version to 0.23.0-rc1 2016-04-17 21:46:56 +02:00
Axel Burri bbb18f5af7 btrbk: cosmetics on info warnings 2016-04-17 21:46:53 +02:00
Axel Burri edfebb8193 btrbk: action "origin": use --format options; do not recurse into parent chain 2016-04-16 22:05:26 +02:00
Axel Burri 1151d2c572 btrbk: print_formatted(): honor use_header argument for all table formats 2016-04-16 20:25:22 +02:00
Axel Burri 9afe17f738 btrbk: continue gracefully (skip instead of abort) when resuming subvolume having existing (possibly garbled) target; cosmetics on debug/trace log 2016-04-16 19:31:29 +02:00
Axel Burri ec9dd761b8 btrbk: use "[subvol cmd]" instead of "[btrfs cmd]", and print this as info log 2016-04-16 18:06:55 +02:00
Axel Burri 689d3d1233 btrbk: action "archive": print created subdirectories on summary; cleanup 2016-04-16 17:31:14 +02:00
Axel Burri 5a06a85619 btrbk: moved get_receive_targets_fsroot() out of get_receive_targets(), while cleaning up 2016-04-16 17:25:53 +02:00
Axel Burri 774e6ef842 btrbk: macro_archive_target(): only warn on unexpected targets, not abort 2016-04-16 17:25:53 +02:00
Axel Burri de05b99757 btrbk: rename action "clone" to "archive" (should have been like this from the beginning) 2016-04-16 17:25:51 +02:00
Axel Burri 4bd68a2e35 btrbk: action "clone": abort all as soon as one target aborts 2016-04-16 00:45:16 +02:00
Axel Burri cc20dfb8c3 btrbk: schedule(): use "informative_only" option instead of checking for empty value; make sure real values are always in front 2016-04-15 23:29:47 +02:00
Axel Burri d0cfba7914 btrbk: action "clone": create missing directories 2016-04-15 23:29:47 +02:00
Axel Burri a5c7c53a86 btrbk: action "clone": print scheduler results if --print-schedule option is set 2016-04-15 23:29:47 +02:00
Axel Burri 14de16aabe btrbk: add action "clone": recursively send/receive all backups to an archive directory 2016-04-15 23:29:47 +02:00
Axel Burri 3c9aff4c40 btrbk: enable --override option 2016-04-15 11:10:12 +02:00
Axel Burri e3702305e6 btrbk: bugfix: update uuid_cache after btrfs_subvolume_show() 2016-04-15 11:07:26 +02:00
Axel Burri 6e997674fc btrbk: remove "btrfs_progs_compat" configuration option, from now on we REQUIRE btrfs-progs >= v3.18.2: we rely on received_uuid for most operations 2016-04-15 11:07:16 +02:00
Axel Burri 6aa54b2dd5 btrbk: bugfix: correctly handle NODE_SUBDIR in vinfo_inject_child() 2016-04-14 18:24:11 +02:00
Axel Burri 141b70f26b btrbk: bugfix for subdir resolving: on older kernels, the "subvolid" mount option is not shown: try to read it with btrfs_subvolume_show() 2016-04-14 18:21:00 +02:00
Axel Burri a1ee9d5c6d btrbk: allow "{snapshot,target}_preserve no": disable retention policy 2016-04-14 14:43:43 +02:00
Axel Burri a03c515b0a btrbk: enter failsafe mode on deprecated preserve configuration: at least create the snapshots, and print message to read the upgrade documentation 2016-04-14 13:41:53 +02:00
Axel Burri 7c0987bd3c btrbk: be harsh (abort) on deprecated "{snapshot,target}_preserve_{daily,weekly,monthly}" and "resume_missing no" options; change default of snapshot_preserve_min to one day 2016-04-13 22:05:20 +02:00
Axel Burri 36cc96fdb8 btrbk: always preserve latest snapshot/backup pair (instead of latest snapshot and latest backup); remove preserve_latest option of schedule() 2016-04-13 22:05:20 +02:00
Axel Burri 032642751b btrbk: change preserve table text: print latest match instead of earliest match 2016-04-13 22:05:20 +02:00
Axel Burri e200975f32 btrbk: add option "*preserve_min latest"; deny "snapshot_preserve_min no" 2016-04-13 22:05:20 +02:00
Axel Burri d143d75b43 btrbk: rename *preserve_all to *preserve_min 2016-04-13 22:05:20 +02:00
Axel Burri 55b121c372 btrbk: remove resume_missing configuration option 2016-04-13 22:05:20 +02:00
Axel Burri 738178565c btrbk: fix vinfo_inject_child() for raw targets 2016-04-13 22:05:20 +02:00
Axel Burri a76512955a btrbk: add vinfo_inject_child(): add a custom node to btr_tree, with fake id, uuid, gen and cgen; use to inject created snapshots and receive targets 2016-04-13 17:17:23 +02:00
Axel Burri bd34d9f689 btrbk: change preserve logic: keep FIRST present of hour/day/... instead of LAST 2016-04-13 17:17:14 +02:00
Axel Burri 7a334097c1 btrbk: cosmetics (logging and summary text about -p option) 2016-04-12 11:47:41 +02:00
Axel Burri 326edfcc29 btrbk: change preserve semantics (incompatible):
- add "{snapshot,target}_preserve_all" configuration option

- change semantics of "{snapshot,target}_preserve NNd" to "preserve
  latest daily only"

- change default of "preserve daily,monthly" to 0 (was: all)

- add deprecated warning and enter compatibility mode: preserve
  everything if deprecated {snapshot,target}_preserve_* options are
  encountered
2016-04-12 11:47:28 +02:00
Axel Burri ceb4dbf19c btrbk: add --print-schedule command line option 2016-04-09 14:16:14 +02:00
Axel Burri 78bfc5b885 btrbk: bugfix: use "/bin/false" as RSH if no config is available 2016-04-08 13:38:50 +02:00
Axel Burri a887e89732 btrbk: warn on receive targets at unexpected location (whole filesystem) when resuming missing backups (do not abort anymore); 2016-04-07 14:35:27 +02:00
Axel Burri 6b71b68fcb btrbk: bugfix: do not run "rm" command with no arguments (on raw targets) 2016-04-06 20:41:36 +02:00
Axel Burri 5d65748ffe btrbk: call init_transaction_log() at the beginning of every action, instead at global place 2016-04-06 20:27:27 +02:00
Axel Burri 211964f709 btrbk: parse btrbk_basename and btrbk_date in vinfo_child() instead of vinfo_subvol_list() 2016-04-06 20:24:56 +02:00
Axel Burri bfb556757d btrbk: get_latest_common(): use all brothers (snapshots with same parent) as candidates (older first, then newer) instead of only older; as last resort, use subvolumes in snapshot_dir matching btrbk file name scheme as candidates 2016-04-06 15:36:54 +02:00
Axel Burri 46e3aae857 btrbk: get_latest_common(): add strategy to find latest common for readonly and received subvolumes; add helper function cmp_date() 2016-04-06 15:36:51 +02:00
Axel Burri a26e8851b4 btrbk: btr_tree: return already assembled tree if a subvolume is already known in uuid_cache 2016-04-06 15:36:27 +02:00
Axel Burri ac0002bce8 btrbk: get_receive_targets() also returns matching source_received_uuid 2016-04-06 15:36:27 +02:00
Axel Burri 4b1983378f btrbk: add useful flags and parse date and basename of btrbk created files in vinfo_subvol_list(); replace parse_filename() calls by usage of new flags 2016-04-06 13:35:37 +02:00
Axel Burri 0bfb78b842 btrbk: remove trailing slash from NODE_SUBDIR 2016-04-03 21:41:41 +02:00
Axel Burri 899ca92026 btrbk: bugfix: untaint raw backup file list read by "find" command 2016-04-03 21:38:19 +02:00
Axel Burri 023004e9cc btrbk: bugfix: add '=' character to (regression introduced in a7cd4a99) 2016-04-03 21:09:30 +02:00
Axel Burri ea5cd06fbc btrbk: bugfix: get_receive_targets() for BTRFS_PROGS_COMPAT (regression introduced in 207e8868) 2016-04-03 21:09:30 +02:00
Axel Burri 302400d640 btrbk: bugfix: disallow snapshot_preserve_* in target section 2016-04-03 15:13:16 +02:00
Axel Burri a7cd4a994c btrbk: add some extra safety when running shell commands 2016-04-02 14:13:16 +02:00
Axel Burri 86170e6b21 btrbk: bugfix: untaint result of system_realpath() 2016-04-02 14:10:35 +02:00
Axel Burri 79caba4267 btrbk: rename %symlink -> %realpath_cache (returning real_path instead of real_url) 2016-03-31 17:24:24 +02:00
Axel Burri 7ee5778dee btrbk: bugfix: print correct target on "same backup target error" 2016-03-31 17:24:24 +02:00
Axel Burri c4073f6c53 btrbk: print target_path instead of target_subvol for "list {target,config}" 2016-03-31 17:24:24 +02:00
Axel Burri 3ada7c174e btrbk: allow targets to be directories (use mountpoint framework) 2016-03-31 17:24:24 +02:00
Axel Burri 06043cf800 btrbk: add btrfs mountpoint resolving functionality 2016-03-31 17:24:23 +02:00
Axel Burri de96f267b8 btrbk: propagate target sections to (sub-)subsections (allow target sections everywhere in the config) 2016-03-31 17:24:18 +02:00
Axel Burri f9ca7504c8 btrbk: add configuration option "rate_limit" (using pv -L)
Original patch provided by @janpascal: "Jan-Pascal van Best"
2016-03-23 11:58:35 +01:00
Axel Burri e6d46e8a02 btrbk: fix regression: correctly handle previously received subvolumes in get_latest_common()
regression from: 8819c67502
2016-03-22 19:30:21 +01:00
Axel Burri 7bb18050f8 btrbk: detect interrupted transfers of raw targets; delete incomplete raw targets on action "clean" 2016-03-22 19:28:05 +01:00
Axel Burri c2b11775a0 btrbk: cosmetics: adapt debug/trace messages 2016-03-16 19:21:48 +01:00
Axel Burri 1adb318f02 documentation: cosmetics: change all url from www.digint.ch to digint.ch 2016-03-16 18:34:28 +01:00
Axel Burri 247f023bab btrbk: allow wildcards in subvolume section; add option "wildcards" in check_file() 2016-03-16 18:17:44 +01:00
Axel Burri b9fa3e6e90 btrbk: add init_config(); use default config in action "diff"; use root config context for action "origin" 2016-03-15 16:54:54 +01:00
Axel Burri 8819c67502 btrbk: fixed raw targets 2016-03-15 14:53:51 +01:00
Axel Burri e9bc4950ac btrbk: re-ordering of functions (no functional changes) 2016-03-15 11:21:59 +01:00
Axel Burri 207e8868da btrbk: no more copy of node information in vinfo by vinfo_set_detail(); always use vinfo->{node}{key}; cleanup 2016-03-14 20:21:12 +01:00
Axel Burri 9a68ab6519 btrbk: use symlink hash instead of REAL_URL 2016-03-14 15:56:20 +01:00
Axel Burri cab2a88843 btrbk: move url_cache lookup to vinfo_subvol_list 2016-03-14 12:59:24 +01:00
Axel Burri 14d1ca1976 btrbk: add warning if a receive target of resume candidate exists at unexpected location 2016-03-12 19:16:07 +01:00
Axel Burri 1b45db3c59 btrbk: simplify btr_tree: SUBTREE is now list instead of hash; add TREE_ROOT pointer to every node; cleanup 2016-03-11 14:55:22 +01:00
Axel Burri 97caced09d btrbk: rename %btrfs_tree_cache -> %url_cache, %uuid_info -> %uuid_cache; cleanup 2016-03-10 22:21:55 +01:00
Axel Burri 84820933ed btrbk: remove %uuid_url_map (replace by get_cached_url_by_uuid() operating on %btrfs_tree_cache) 2016-03-10 22:21:55 +01:00
Axel Burri 743d7704f5 btrbk: correctly fill cache; fix vinfo_set_detail; add debug functionality (VINFO(), SUBTREE_LIST()); cleanup 2016-03-10 22:21:55 +01:00
Axel Burri e85b6dadf1 btrbk: data structure refactoring:
- remove %subvol_list_cache: may slow down aa bit, but makes possible
  to inject nodes correctly

- simplify subtree list (is now an array as it should have been from
  the beginning); correctly fill tree_cache

- fix vinfo_set_detail; cleanup
2016-03-10 22:19:36 +01:00
Axel Burri 1d054bf04a btrbk: refactoring of add global caches: reduce btrfs-progs calls, and make sure all root vinfo (especially targets) with same URL share the same SUBVOL_LIST reference.
- %btrfs_tree_cache (replaces %root_tree_cache)

- %subvol_list_cache (replaces %vinfo_cache):

- vinfo_init_root() (was: vinfo_root()) now lookups in cache before
  calling btrfs_subvolume_detail()

- vinfo_subvol_list() now lookups in cache before calling
  btrfs_subvolume_list()
2016-03-09 19:52:45 +01:00
Axel Burri ba90c13320 btrbk: fixed schedule() debug text 2016-03-08 18:22:58 +01:00
Axel Burri c1b27c744b btrbk: clone target subvolume tree if same url as other target (less btrfs calls, shared SUBVOL_LIST) 2016-03-08 16:41:02 +01:00
Axel Burri eba08f2ca3 btrbk: add config_preserve_hash(); fix macro_delete() 2016-03-08 15:31:16 +01:00
Axel Burri 5cc908313a btrbk: cleanup trace output; cosmetics 2016-03-08 15:31:08 +01:00
Axel Burri f770488d85 btrbk: adapt all actions to use vinfo_subsection() 2016-03-07 22:54:27 +01:00
Axel Burri fbbd82114d btrbk: move SUBVOL_RECEIVED, SUBVOL_DELETED, SNAPSHOT_CREATED, SNAPSHOT_UP_TO_DATE data from config to corresponding vinfo 2016-03-07 21:45:12 +01:00
Axel Burri 6f1e94eb27 btrbk: adapt action "run" to use vinfo_subsection() 2016-03-07 20:47:24 +01:00
Axel Burri b2be1357eb btrbk: fixed vinfo_set_detail(), while being very paranoid; fixed vinfo_subsection (was: valid_subsection_vinfo); adaptions in vinfo readin (working again) 2016-03-07 20:30:06 +01:00
Axel Burri ab4ded9830 btrbk: ABORTED() now sets $abrt to last message (useful for warnings after abort) 2016-03-07 20:29:57 +01:00
Axel Burri 96faae9659 btrbk: be harsh, remove sroot, droot, svol in config (will break a lot of things!) 2016-03-07 19:15:57 +01:00
Axel Burri d3148851c5 btrbk: first adaptions for vinfo holding config 2016-03-07 17:36:02 +01:00
Axel Burri ceb346db66 btrbk: skeleton for vinfo holding config 2016-03-07 17:35:17 +01:00
Axel Burri 5030d54318 btrbk: split "check for duplicate snapshot locations" from "fill vinfo hash" 2016-03-07 15:33:37 +01:00
Axel Burri 46bd1ad52a btrbk: add function macro_delete(), used by snapshot/backup delete 2016-03-02 00:04:24 +01:00
Axel Burri e806d4812f btrbk: cosmetics: adapt debug text and variable names for macro_send_receive() and similar 2016-03-01 21:55:09 +01:00
Axel Burri 6c9643f2be btrbk: action "diff": print total size 2016-03-01 21:52:06 +01:00
Axel Burri a1124053a7 btrbk: bugfix: sort numerically (low prio, affects only list output) 2016-03-01 19:31:43 +01:00
Axel Burri ac1b7271c4 btrbk: read readonly flag in btrfs_subvolume_list(). this requires an additional call to btrfs-progs. 2016-03-01 15:10:37 +01:00
Axel Burri 9eb38ac9d0 btrbk: add {snapshot,target}_preserve shortcut 2016-03-01 12:30:35 +01:00
Axel Burri 4aa4be3942 btrbk: different (correct) text output for scheduler results 2016-03-01 11:40:27 +01:00
Axel Burri a049d18b90 btrbk: implement {snapshot,target}_preserve_yearly 2016-03-01 11:40:20 +01:00
Axel Burri 4434bc17ef changed version to 0.22.2 2016-02-02 11:26:09 +01:00
Axel Burri e913b23e99 btrbk: fixed debug/trace output of btrfs_filesystem_usage() 2016-02-01 17:07:17 +01:00
Axel Burri 6f66f72c26 btrbk: bugfix: fix checks on "btrfs sub show" output, which resulted in breakage on btrfs-progs < 4.1 2016-02-01 17:05:12 +01:00
Axel Burri d3990bcc90 btrbk: increment copyright year 2016-01-21 17:41:40 +01:00
Axel Burri 872779398e changed version to 0.22.1 2016-01-20 18:47:29 +01:00
Axel Burri 13a656a6d4 btrbk: add more sophisticated checks for possible future incompatibilities of btrfs-progs 2016-01-20 18:22:08 +01:00
Axel Burri 7a4aa4b650 btrbk: add support for btrfs-progs v4.4 2016-01-20 17:53:36 +01:00
Axel Burri 9595adc2a5 changed version to 0.22.0 2016-01-19 21:08:19 +01:00
Michael Düll 14c5c41e72 btrbk: make pv more useful by passing parameters.
Disabling the non-functional progress bar and
adding average and written byte counters.

Signed-off-by: Michael Düll <michael.duell@rub.de>

Remove -e option (-trab instead of -traeb).
Also add same options to btrfs_send_to_file().

Signed-off-by: Axel Burri <axel@tty0.ch>
2016-01-19 18:01:24 +01:00
Axel Burri 614438183f btrbk: bugfix: run_cmd: do not redirect all stderr output, as this kills progress-viewer (pv) output 2016-01-19 17:52:27 +01:00
Axel Burri a1698ef4b0 btrbk: print "$hostname:$path" instead of "{$hostname}$path" in summary and logs 2016-01-17 19:44:59 +01:00
Axel Burri 8a29ced0c9 btrbk: add up-to-date flag to stats; print "target/snapthot_name.*" instead of just "target" in stats 2016-01-17 18:56:14 +01:00
Axel Burri 5a4f4744c9 btrbk: cosmetics (remove obsolete line of code) 2016-01-15 02:30:42 +01:00
Axel Burri e7ff20114c btrbk: add "stats" action (print snapshot/backup statistics) 2016-01-15 02:06:03 +01:00
Axel Burri a82c1f533a btrbk: added configuration options "raw_target_compress_level", "raw_target_compress_threads" 2016-01-14 18:02:53 +01:00
Axel Burri 3461f9440b btrbk: bugfix: allow filter for action "clean" 2016-01-14 16:39:43 +01:00
Axel Burri 9718ad1460 btrbk: add "-n, --dry-run" option 2016-01-14 16:11:33 +01:00
Axel Burri 3624a8fba0 btrbk: add "clean" action (delete incomplete, garbled backups) 2016-01-14 16:11:30 +01:00
Axel Burri 3a1610622d btrbk: bugfix 2016-01-14 15:03:55 +01:00
Axel Burri 51ddb20232 btrbk: set status=incomplete in "btrbk list backups" if received_uuid is not set but target subvolume matches our naming 2016-01-13 15:32:22 +01:00
Axel Burri 33c19e622a btrbk: bugfix: fix monthly schedule if older than 10 weeks 2015-12-17 19:00:45 +01:00
Nicolas Porcel 3b740948fb btrbk: bugfix: config option "timestamp_format long": correct number of arguments for sprintf (breaks when using perl v5.22.0) 2015-12-15 12:49:34 +01:00
Axel Burri cb01507bb1 changed version to 0.21.0 2015-10-25 12:29:52 +01:00
Axel Burri 612b9fda6c btrbk: check files for directory traversal; cosmetics 2015-10-25 12:20:59 +01:00
Axel Burri e732b92dd5 btrbk: always preserve all raw targets (as long as incremental rotation is not implemented) 2015-10-23 19:12:37 +02:00
Axel Burri 1360e059a4 btrbk: construct a (fake) uuid for raw files, and set parent_uuid correctly (fixes "origin" command) 2015-10-23 19:12:37 +02:00