Commit Graph

384 Commits (46f1e5e2e466a14a8a8e94002e7a95078fc5b9d0)

Author SHA1 Message Date
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
Axel Burri ab356937d5 btrbk: add "--override=KEY=VALUE" command line option (disabled for now) 2015-10-23 19:12:37 +02:00
Axel Burri daedfb88a2 btrbk: bugfix: correct $raw_postfix_match 2015-10-23 19:12:37 +02:00
Axel Burri 3f09d2c37f btrbk/documentation: rename "resolve *" commands to "list *"; cleanup 2015-10-22 17:59:17 +02:00
Axel Burri 288e9e73c8 btrbk: bugfix: correctly list snapshots with no targets for "resolve snapshots" command; cosmetics 2015-10-22 17:25:20 +02:00
Axel Burri 9af3344676 btrbk: dont print empty snapshot/backup schedule 2015-10-21 21:58:30 +02:00
Axel Burri f526d454f7 btrbk: parse stderr from send/receive commands (error on /^ERROR/), as "btrfs receive" returns 0 even if nothing is received. 2015-10-21 13:51:31 +02:00
Axel Burri da86557b89 btrbk: add signal handler for SIGINT, dumping transaction log 2015-10-20 22:19:35 +02:00
Axel Burri cea3781ed2 btrbk: add output file support for print_formatted() function 2015-10-20 22:19:35 +02:00
Axel Burri bfda14358e btrbk: correctly close config file after parsing 2015-10-20 22:19:35 +02:00
Axel Burri 79a66caed6 btrbk: add real transaction (starting - run_cmd - status) 2015-10-20 22:19:35 +02:00
Axel Burri 32028850bd btrbk: fix "resolve targets" for btrfs_progs_compat=yes; cleanup 2015-10-20 22:19:29 +02:00
Axel Burri fef691aa04 btrbk: remove tree output for "resolve snapshots"; cleanup 2015-10-20 15:59:16 +02:00
Axel Burri 40a384e7c7 btrbk: dont ignore non-btrbk files in "resolve targets"; print debug when ignoring non-btrbk files in other places 2015-10-20 13:57:29 +02:00
Axel Burri 05bfeaff1b btrbk: replace "info" command with "usage", with tabular output; add support for right-aligned columns 2015-10-19 22:10:08 +02:00
Axel Burri fd985d0245 btrbk: use less confusing *_subvol instead of *_path for table output headings; cleanup table formats 2015-10-19 20:46:00 +02:00
Axel Burri 4a1b6545f4 btrbk: add commands "resolve snapshots|targets|latest" (replacing "tree") 2015-10-19 20:45:10 +02:00
Axel Burri f01784e2d0 btrbk: correct exit status for informational commands (also exit=10 if some aborted) 2015-10-14 16:53:46 +02:00
Axel Burri 2c46e52118 btrbk: cosmetics: duration is undef on dryrun; transaction log messages are prefixed with #; "finished" transaction prints status "partial" or "success"; print duration in transaction log 2015-10-14 14:33:53 +02:00
Axel Burri bca413b7ca documentation: add missing "config print" command; add predefined "list" filters; cosmetics; fix FAQ 2015-10-13 20:08:10 +02:00
Axel Burri 46c7841e93 btrbk: add transaction log (configuration option "transaction_log <file>" 2015-10-13 20:08:10 +02:00
Axel Burri 282668927d btrbk: cosmetics on table format: no trailing whitespace 2015-10-13 20:08:10 +02:00
Axel Burri fa382d5e6d btrbk: add global table format definitions; bugfix on action_log table 2015-10-13 20:08:10 +02:00
Axel Burri 10a7f98579 btrbk: add vinfo_prefixed_keys() function, which resolves a vinfo into hash of prefixed (url,path,host,rsh) for formatted lists 2015-10-13 20:08:09 +02:00
Axel Burri 0a6599aa78 btrbk: globally use new ABORTED macro, which also adds an entry to the action_log 2015-10-13 20:08:09 +02:00
Axel Burri 5356f83dfc btrbk: add action_log, a nice way to keep track and list the actions (snapshot/delete/send-receive) 2015-10-13 20:08:07 +02:00
Axel Burri 93249d1154 btrbk: show scheduling summary if -v is set on run/dryrun 2015-10-13 20:08:07 +02:00
Axel Burri 01b7ab0ebf btrbk: add "-t, --table" command line option (shortcut for "--format=table") 2015-10-13 20:08:04 +02:00
Axel Burri 07f7bfe3a6 btrbk: fixed sort order in table format of run/dryrun actions 2015-10-13 20:08:04 +02:00
Axel Burri 1ac801c0a6 btrbk: add "list volume|source|target" actions (special output of configuration list) 2015-10-13 20:08:00 +02:00
Axel Burri 956b010143 documentation: add "--format=table|long|raw" command line option 2015-10-13 20:02:02 +02:00
Axel Burri b65602f848 btrbk: bugfix/cleanup on formatting 2015-10-13 20:02:02 +02:00
Axel Burri e5c629e218 btrbk: use formatted output on run/dryrun actions; cleanup 2015-10-13 20:02:02 +02:00
Axel Burri b1188484f0 btrbk: use command line option "--format=table|raw" in action tree (needs cleanup) 2015-10-13 20:02:01 +02:00
Axel Burri 7bb7883be7 btrbk: changed command "config dump" to "list", with new --format=table|raw command line option (needs cleanup) 2015-10-13 20:02:01 +02:00
Axel Burri 03db6883c7 btrbk: add framework for printing formatted output (tabular or key="value"...) 2015-10-13 20:02:01 +02:00
Axel Burri e87373b043 btrbk: add "config print" action: prints internal representation of config 2015-10-13 20:02:01 +02:00
Axel Burri d445dd0b12 btrbk: print "Dryrun: YES" in backup summary header if dryrun is set 2015-10-13 20:02:01 +02:00
Axel Burri 1905d80969 btrbk: return exit status 10 instead of 0 if one or more backup tasks aborted, and exit status 2 on parse errors 2015-09-30 14:00:39 +02:00
Axel Burri 92159d862a btrbk: additional test for non-zero target file after raw backup, as failure is not detected by exit code 2015-09-29 21:49:23 +02:00
Axel Burri 31e91e8bcd btrbk: enforce preserve of all raw incremental images with new FORCE_PRESERVE tag; changed raw target names; added "timestamp_format short|long" configuration option (YYYYMMDD or YYYYMMDD<T>HHMM) 2015-09-29 21:48:47 +02:00
Axel Burri 370f435297 btrbk: bugfix: correctly handle "incremental no" option 2015-09-29 14:10:13 +02:00
Axel Burri c06bca17bd btrbk: new target_type "raw": send subvolume to file rather than receiving it, with compression and encryption support; added configuration options "raw_target_compress", "raw_target_encrypt", "gpg_keyring", "gpg_recipient"; skip deletion of raw targets for now; 2015-09-26 14:02:55 +02:00
Axel Burri d73e3f184b btrbk: added "config dump" command (tagged as experimental): dump filtered btrbk config, useful for scripting 2015-09-24 16:00:35 +02:00
Axel Burri b3d8c1f15f btrbk: allow filtering by "<target-directory>/<snapshot-name>", which makes it possible to pinpoint a single target 2015-09-24 14:56:22 +02:00
Axel Burri 8059fa28db documentation: added documentation for ---raw-output command line option 2015-09-24 01:02:42 +02:00
Axel Burri a1467fa629 btrbk: added command-line option "--raw-output", affects commands "run", "dryrun" and "tree" 2015-09-23 14:10:13 +02:00
Axel Burri 06bfe2a004 btrbk: bugfix: sort snapshots by cgen instead of PATH in action "tree" 2015-09-23 11:10:42 +02:00
Axel Burri dd6104339e btrbk: added "ssh_cipher_spec" configuration option, overriding default SSH ciphers (ssh -c option) 2015-09-20 18:32:19 +02:00
Axel Burri 269b3611ac documentation: added "FILTER STATEMENT" section in btrbk(1), and "group" configuration option in btrbk.conf(5) 2015-09-20 17:47:46 +02:00
Axel Burri d64aea9cc9 btrbk: allow targets for subvolume/group command-line argument 2015-09-20 17:39:47 +02:00
Axel Burri e7c6e37bd0 btrbk: implemented "group" configuration option and filtering for volume/subvolume 2015-09-20 17:39:17 +02:00
Axel Burri 28abe96747 btrbk: added "prefix/postfix" options to config_key() function, simplifying snapdir handling 2015-09-10 12:11:54 +02:00
Axel Burri 5b0e618632 changed version to 0.20.0 2015-09-02 12:27:13 +02:00
Axel Burri 22d3e95e3a btrbk: bugfix: correct handling of empty "snapshot_dir" 2015-09-02 11:48:32 +02:00
Jan Wagner 68876f0562 btrbk: added "ssh_compression" configuration option for setting the SSH compression flag 2015-09-02 11:22:50 +02:00
Axel Burri 79f52924b6 btrbk: fixed wrong "--version" line in help message 2015-08-27 11:57:58 +02:00
Axel Burri d8e8df0ebd btrbk: added command line option "--progress", which simply pipes btrfs send through `pv` 2015-08-15 18:43:03 +02:00
Axel Burri 752dbc6157 btrbk: accept long options (use Getopt::Long instead of Getopt::Std) 2015-08-15 18:30:14 +02:00
Axel Burri d09d81fbeb btrbk: added configuration option "ssh_port" 2015-08-13 21:50:26 +02:00
Axel Burri fd94bc25fc btrbk: use arrays as arguments for run_cmd(), making it compatible with the adaptions in the open3 branch 2015-08-07 16:10:34 +02:00
Axel Burri a802674d11 btrbk: cosmetics (fixed typo in log message) 2015-07-27 12:21:42 +02:00
Axel Burri 97286ab34c changed version to 0.19.3 2015-06-21 15:37:04 +02:00
Axel Burri 76f15624f3 btrbk: adaptions for btrfs-progs >= 4.1: different output for "btrfs subvolume show" 2015-06-21 13:45:23 +02:00
Axel Burri 360deca5f2 btrbk: correct parsing of btrfs subvolume list (allow id < top_level) 2015-06-17 12:42:29 +02:00
Axel Burri 8a53b3874c btrbk: bugfix: minor bug when sorting in schedule() 2015-06-10 13:10:45 +02:00
Axel Burri eab34c9d68 btrbk: set development version 2015-06-10 13:10:29 +02:00
Axel Burri 842f8cb201 changed version to 0.19.2 2015-06-07 12:33:27 +02:00
Axel Burri 16cfb600b7 btrbk: workaround for btrfs-progs < 3.17.3 (returns exit status 0 on errors for "btrfs subvolume show") 2015-06-07 11:52:39 +02:00
Axel Burri 5ab5175340 btrbk: bugfix: dont print error messages check_file() when called without key/config_file hints 2015-06-07 11:36:12 +02:00
Axel Burri e3da1f718f changed version to 0.19.1 2015-06-01 12:48:31 +02:00
Axel Burri db6a1a464a btrbk: bugfix: check undef on ABORTED flag in summary 2015-06-01 12:45:24 +02:00
Axel Burri bb7aa10b23 btrbk: always use "cgen" for snapshots (correct handling after a "btrfs balance", where "gen" is set to current generation) 2015-06-01 12:41:43 +02:00
Axel Burri b4a9974c5d changed version to 0.19.0 2015-05-27 17:36:58 +02:00
Axel Burri 1818eefc85 btrbk: allow subvolume filtering on "info" action 2015-05-27 15:00:25 +02:00
Axel Burri a96bb4209f btrbk: fixed mapping of subvoume cmdline args 2015-05-27 14:36:38 +02:00
Axel Burri f9f85b5cb0 btrbk: bugfix: fixed crash in action "diff" 2015-05-26 21:12:07 +02:00
Axel Burri eba0028fe4 btrbk: added consistent print header for all actions 2015-05-26 21:12:07 +02:00
Axel Burri 7f7b6477d2 btrbk: allow subvolume filtering on "tree" action 2015-05-26 21:12:04 +02:00
Axel Burri 6e23f1d5b3 btrbk: improved handling of command line subvolume filter for run/dryrun action: allow filtering of volume; hide aborted message in summary if abort was due to command line argument skip (ABORTED_NOERR) 2015-05-26 21:11:26 +02:00
Axel Burri 005e5c63be btrbk: bugfix: crash if "snapshot_create onchange" is set and no snapshots are present 2015-05-26 18:09:36 +02:00
Axel Burri 7b9021d5c8 btrbk: allow "host:path" notation for command line arguments 2015-05-25 18:18:48 +02:00
Axel Burri 4295b3c019 btrbk: display snapshot up-to-date status in "tree" action; cosmetics 2015-05-25 18:18:48 +02:00
Axel Burri 707ea7b241 btrbk: cleanup: simpler check for present target 2015-05-25 18:18:48 +02:00
Axel Burri 16355b848d btrbk: 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) 2015-05-25 18:18:44 +02:00
Axel Burri 31947279fb changed version to 0.18.0; added migration notes to ChangeLog 2015-05-21 14:47:38 +02:00
Axel Burri 725191583e Merge branch 'resume_only' 2015-05-20 21:53:46 +02:00
Axel Burri 231a8c2fd3 btrbk: cosmetics: sort deleted subvolumes ascending in backup summary (instead of descending) 2015-05-20 21:06:01 +02:00
Axel Burri 613edab93b btrbk: implemented snapshot_create configuration option. implemented preserve_latest argument for schedule() function, which is set if no snapshot was created in order to make sure that the latest snapshot/backup is always preserved. 2015-05-20 21:06:01 +02:00
Axel Burri 2f1cec3cf5 btrbk: improved handling of deprecated configuration options 2015-05-20 21:06:01 +02:00
Axel Burri 84e41727b9 btrbk: added command line option -r (resume only) 2015-05-20 21:06:01 +02:00
Axel Burri d935bfc679 btrbk: fixed error messages of "diff" action 2015-05-19 18:50:56 +02:00
Axel Burri ab01baf4b7 btrbk: cosmetics: pass hash (non_destructive, catch_stderr) to run_cmd() for better code readability; cleanup 2015-05-19 18:48:32 +02:00
Axel Burri c23674fca8 btrbk: catch exact error from "btrfs subvolume show"; instruct user to fix ssh_filter_btrbk.sh if it rejected the ssh command 2015-05-19 18:22:55 +02:00
Axel Burri bea010dce0 btrbk, ssh_filter_btrbk.sh: set PATH=/sbin:/bin:/usr/sbin:/usr/bin and call "btrfs" instead of using absolute "/sbin/btrfs". for compatibility with all distros out there.
- debian jessie (stable): btrfs-tools-3.17-1.1: `/sbin/btrfs`
  - debian sid (unstable): btrfs-tools-4.0-2: `/bin/btrfs`
  - gentoo: sys-fs/btrfs-progs-4.0: `/sbin/btrfs`
  - arch: btrfs-progs-4.0-2: `/usr/bin/btrfs`
2015-05-18 21:18:57 +02:00
Axel Burri 5bfba3602e changed version to 0.17.1 2015-05-15 17:55:48 +02:00
Axel Burri b0b2bb99f1 btrbk: correctly log statistics of resumed subvolumes 2015-05-15 17:32:30 +02:00
Axel Burri 2d445a84cb Merge branch 'unsafe_delete_on_receive_errors' 2015-05-15 17:18:43 +02:00
Axel Burri fbe9e4c9d0 btrbk: check for stray target subvolumes before send/receive, and abort with unrecoverable error if necessary 2015-05-15 17:16:50 +02:00