Commit Graph

94 Commits (422d52c063a16527b0e186e1212214fa10117390)

Author SHA1 Message Date
Axel Burri 422d52c063 btrbk: add key derivation for encrypted raw targets using external backend 2017-09-28 14:17:00 +02:00
Axel Burri de7628ac7c btrbk: add openssl_enc encryption for raw targets; add system_urandom()
Example:

Manually create a key:

    # KEYFILE=/some/secure/place/btrbk.key
    # dd if=/dev/urandom bs=1 count=32 | od -x -A n | tr -d "[:space:]" > $KEYFILE

btrbk.conf:

    volume /mnt/btr_pool
      incremental no
      raw_target_encrypt  openssl_enc
      openssl_ciphername  aes-256-cbc
      openssl_iv_size     16  # NOTE: set to "no" if no IV is needed by the selected cipher
      openssl_keyfile     /some/secure/place/btrbk.key

      subvolume home
        target raw ssh://cloud.example.com/backup
2017-09-28 14:17:00 +02:00
Axel Burri e804930b5e btrbk: allow deletion of non-incremental raw targets
implemented directly in btrfs_subvolume_delete()
2017-09-28 14:17:00 +02:00
Axel Burri cd8d7e3a0a btrbk: use sidecar file "*.info" instead of encoding uuids into filename for raw targets
pros:

 - better forward compatibility, e.g. symmetrical encryption
 - better readability of files

cons:

 - two files per backup
2017-09-28 14:16:53 +02:00
Axel Burri 88aa8c1fea btrbk: remove "duration" column from transaction_log/transaction_syslog
The "duration" column in the transaction log has proven to be
confusing to some users, especially on errors (e.g. "send-receive
ERROR 27" in issue #177). As it's not really necessary (duration can
be computed from the corresponding "starting" log entry), it's now
being dropped.
2017-08-28 17:55:27 +02:00
Axel Burri a9f1b6b24a change version to 0.25.1 2017-07-30 16:03:58 +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 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 a7f52785bd documentation: add all accepted facility names for transaction_syslog 2017-02-18 13:16:43 +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
Axel Burri 2acbe4978e documentation: cosmetics: fix spelling 2017-01-03 13:42:38 +01:00
Axel Burri da849b37ae change version to 0.24.0 2016-11-16 15:32:17 +01:00
Axel Burri ff8815b235 Documentation: btrbk.conf.5: add link to https://github.com/digint/btrfs-progs-btrbk in description of "backend" feature 2016-11-16 15:31:16 +01:00
Axel Burri b6defaa37f documentation: add missing documentation of archive_preserve options 2016-08-29 19:44:17 +02: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 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 9913e2785a documentation: add stream_compress documentation, update Changelog 2016-08-19 17:36:33 +02:00
Axel Burri 9a5e8311be change version to 0.23.3 2016-07-14 01:41:45 +02:00
Axel Burri 91d02ca97b change version to 0.23.2 2016-06-07 16:41:41 +02:00
Axel Burri 3a8665bce9 documentation: add information about wildcard characters for subvolume section; cleanup 2016-06-07 16:37:32 +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 cb0851c8b6 change version to 0.23.1 2016-05-03 16:21:34 +02:00
Axel Burri 65ebf949d1 documentation: cosmetics: groff: consistently use minus "\-" instead of hyphen "-" where applicable 2016-05-03 16:01:39 +02:00
Axel Burri cb6dcbe58e documentation: cosmetics (no more long lines) 2016-05-03 15:30:06 +02:00
Axel Burri 7a469597ac documentation: describe transaction log table format; cosmetics 2016-04-28 12:44:33 +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 4ffaf430c5 change version to 0.23.0 2016-04-23 15:06:57 +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 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 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 a27f99af46 change version to 0.23.0-rc1 2016-04-17 21:46:56 +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 a1ee9d5c6d btrbk: allow "{snapshot,target}_preserve no": disable retention policy 2016-04-14 14:43:43 +02:00
Axel Burri 73906caacd documentation: update/fix ChangeLog, README.md, btrbk.conf.5; add "doc/upgrade_to_v0.23.0.md" 2016-04-13 22:05:20 +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 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 bd34d9f689 btrbk: change preserve logic: keep FIRST present of hour/day/... instead of LAST 2016-04-13 17:17:14 +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 90a3537433 documentation: add documentation for target propagation and target directories 2016-03-31 17:24:24 +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 1adb318f02 documentation: cosmetics: change all url from www.digint.ch to digint.ch 2016-03-16 18:34:28 +01:00
Axel Burri 9eb38ac9d0 btrbk: add {snapshot,target}_preserve shortcut 2016-03-01 12:30:35 +01:00