Commit Graph

362 Commits

Author SHA1 Message Date
Christoph Klaffl 9ab57e9bb4
added documentation regarding --keep-sync-snap option 2020-05-01 17:26:54 +02:00
Christoph Klaffl d77cfdf4c7
implemented option for keeping sync snaps 2020-05-01 17:20:07 +02:00
Christoph Klaffl 0e807386c4
use sudo if neccessary for checking pool capabilities regarding resumeable send 2020-04-20 19:20:28 +02:00
Christoph Klaffl e1a6507455
direct connection will default to busybox nc again but can be switched to mbuffer 2020-04-02 21:37:06 +02:00
Christoph Klaffl 807f6fa1bb
check if socat and mbuffer is available for insecure direct connection 2020-03-31 09:27:17 +02:00
Christoph Klaffl f0dfd46c9f
use mbuffer tcp listen socket instead of busybox nc 2020-03-30 20:15:09 +02:00
Christoph Klaffl 2e6abddb5e
fixed uninitialized value warning 2020-03-30 19:01:54 +02:00
Christoph Klaffl 84bc3164f0
implemented option for direct connection via socat and busybox nc 2020-02-21 20:34:28 +01:00
Christoph Klaffl b808a74e2e
catch another case were the resume state isn't availabe anymore 2020-02-14 18:38:38 +01:00
Christoph Klaffl 4ebdc9d173
check for an invalid argument combination 2020-02-13 18:31:56 +01:00
Christoph Klaffl 13ba2b43fa
fix iszfsbusy check for similar dataset names 2020-02-13 01:37:54 +01:00
Christoph Klaffl 1bad3cd25b
append timezone offset to the syncoid snapshot name to fix DST collisions 2020-02-12 18:24:08 +01:00
croadfeldt bb30496d19
Fixed Typo in arguments.
Removed errant A in zfs list command line arguments.
2020-01-18 01:52:12 -06:00
Christoph Klaffl d0ef3ec2d5
Merge branch 'master' into preserve-recordsize 2020-01-16 21:23:07 +01:00
Jim Salter e5c998c71d
Merge pull request #408 from gdevenyi/pvoptions
add ability to configure pv in syncoid
2020-01-16 13:57:10 -05:00
Jim Salter e031976cde
Merge pull request #415 from phreaker0/send-size-adaption
added needed verbose flag for send size estimation (at least for late…
2020-01-16 13:50:57 -05:00
Jim Salter 69d6ae21d7
Merge pull request #383 from mschout/feature/ignore-missing-filesystems
Gracefully handle error when source dataset disappeared
2020-01-16 13:47:09 -05:00
Christoph Klaffl 28ef311ba5
only print stderr output of failed listing command with --debug flag 2020-01-16 18:10:20 +01:00
Christoph Klaffl 3b18948f29
typo 2020-01-16 17:49:43 +01:00
Christoph Klaffl 77fd555a84
fixed state reset 2020-01-16 01:26:44 +01:00
Christoph Klaffl 30fb5aabeb
implemented fallback for listing snapshots on solaris 2020-01-13 19:25:22 +01:00
Christoph Klaffl 96a48efd92
prepare v2.0.3 bugfix release 2019-10-02 16:42:38 +02:00
Christoph Klaffl b04bd2f02d
proper changelog for the last two version and packaging updates 2019-09-25 22:22:00 +02:00
Christoph Klaffl 381560a320
documented preserve-recordsize flag 2019-09-25 18:33:55 +02:00
Christoph Klaffl a9043b5301
implemented flag for preserving recordsize on inital sends 2019-09-25 18:24:40 +02:00
Christoph Klaffl a85ad93a18
added needed verbose flag for send size estimation (at least for latest FreeBSD codebase) 2019-06-18 08:32:11 +02:00
Gabriel A. Devenyi dee9d1817f Add ability to configure pv 2019-06-14 11:50:34 -04:00
Jim Salter a90eec33e3
Merge pull request #405 from hartzell/patch-1
Documentation buglet, --sshkey specifies the *key*
2019-06-14 10:11:19 -04:00
Christoph Klaffl 9791094816
some FreeBSD related fixes 2019-06-14 15:45:44 +02:00
George Hartzell cb94fa1d16
Documentation buglet, --sshkey specifies the *key*
The `--sshkey` option specifies the ssh key, *not* the ssh public key.  Empirically, it fails if you point it at a public key and works if you point it at the private part.  Make sense since it's being used as the arg to `-i` in the `ssh` command line.
2019-06-13 14:34:08 -07:00
Christoph Klaffl 56f97b5bd2
capture the stderr of zfs send command in the case of a resumed replication where the send size can't be estimated (in which case pv is not working anyway, so we can break the interactivitiy) 2019-06-06 08:09:42 +02:00
Christoph Klaffl 22fe41cb11
redirect zfs receive error to stdout and only capture stdout for parsing of error codes, this way stderr is left alone and pv can work interactively 2019-06-06 08:04:00 +02:00
Michael Schout 3892d73594 Capture output in getzfsvalue and handle datasets that disappeared
Change getzfsvalue() so that if called in array context, returns the
value and the error as a two element list.  This allows the caller to
recieve the error from the zfs command.

If the dataset went away before fetching the sanoid:sync property, just
issue a warning and skip it.
2019-05-29 17:13:31 -05:00
Michael Schout 784efe2d85 Remove debug warning 2019-05-25 12:01:54 -05:00
Michael Schout fd71e794ad Gracefully handle error when source dataset disappeared
If the source dataset dissappeared before we were able to get the
sanoid:sync property, do not set an error exit code.  Handle this
gracefully as this should not be considered an error.

Fixes #380
2019-05-25 12:01:54 -05:00
Christoph Klaffl 6eb1be3ef7
handle resume states where the source snapshot was already deleted 2019-05-20 18:18:21 +02:00
Christoph Klaffl 16fceba54c
moved common used variables to top of function 2019-05-20 18:01:29 +02:00
Christoph Klaffl 1046f7f58e
use capture::tiny for teeing commands 2019-05-16 18:42:26 +02:00
Christoph Klaffl f7bd267a6b
Merge branch 'master' into reset-resume-state 2019-05-16 18:15:02 +02:00
Jim Salter e320462c69
Merge pull request #382 from phreaker0/fix-snapshot-ordering
fixed ordering of snapshots with the same creation timestamp
2019-05-15 12:41:32 -04:00
Christoph Klaffl 522bdecd53
fixed ordering of snapshots with the same creation timestamp 2019-05-15 16:47:51 +02:00
Jim Salter ea90108eab
revert -r in zfs get (not needed here) 2019-04-09 10:50:29 -04:00
Jim Salter 8d8df7e533
Add -r to zfs get -t snap for zfs 8.1 2019-04-07 19:51:32 -04:00
Christoph Klaffl a78faed88c
Merge branch 'master' into path 2019-03-31 20:52:10 +02:00
Christoph Klaffl 111d93a166
Merge branch 'master' into fix-bookmark-edge-cases 2019-03-31 15:39:56 +02:00
Jim Salter e376eadc97
Merge pull request #342 from phreaker0/create-bookmark
implemented creation of zfs bookmarks
2019-03-29 12:00:33 -04:00
Jim Salter 12198180d8
Merge pull request #352 from phreaker0/clone-fallback
use ordinary replication if clone recreation fails
2019-03-29 12:00:00 -04:00
Jim Salter 11b3af65fd
Merge pull request #334 from phreaker0/check-pool-resume
check pool capability for resumeable replication instead of checking …
2019-03-29 11:59:22 -04:00
Jim Salter fd2823926d
Merge pull request #319 from phreaker0/silence-excludes
removed debug output from excludes loop
2019-03-29 11:58:50 -04:00
Jim Salter 31e46da29b
Merge pull request #343 from phreaker0/whitelist-send-recv-options
implemented parsing of provided zfs send/recv options and whitelisting for each use case as needed
2019-03-29 11:57:13 -04:00
Jim Salter 189f9335a5
Merge pull request #335 from phreaker0/catch-some-errors
Catch some errors
2019-03-29 11:50:50 -04:00
Jim Salter 5e0617f02e
Merge pull request #348 from phreaker0/fix-unitialized-variable
fix unitialized variable
2019-03-29 11:49:28 -04:00
Jim Salter 7900e9f8f9
Merge pull request #353 from phreaker0/check-ssh
check if ssh connection works
2019-03-29 11:49:03 -04:00
Jim Salter e86ac01259
Merge pull request #360 from phreaker0/fix-initial-no-stream
initial replication without intermediate snapshots should use the cre…
2019-03-29 11:48:32 -04:00
Jim Salter 681aa615c1
clarify bandwidth limit units 2019-03-29 11:45:38 -04:00
Christoph Klaffl 736d031979
initial replication without intermediate snapshots should use the created sync snapshot 2019-03-14 17:35:58 +01:00
Klemens Ullmann-Marx e0e7b0d2ae
added bwlimit units 2019-02-28 09:09:24 +01:00
Christoph Klaffl e014fd7942
check if ssh connection works 2019-02-20 18:06:04 +01:00
Christoph Klaffl 25c5e2e242
allow new zfs send/recv hold parameter (introduced in recent master) and drop invalid raw parameter for send size estimation for resumeable send 2019-02-19 23:27:52 +01:00
Christoph Klaffl c543f9aa0c
use ordinary replication if clone recreation fails 2019-02-19 16:00:46 +01:00
Christoph Klaffl a748b41f09
if bookmark creation fails use guid bases suffix based fallback name 2019-02-04 18:38:09 +01:00
Christoph Klaffl 99b439e383
return if there is nothing to do 2019-02-04 18:24:19 +01:00
Christoph Klaffl 5812b57349
check for invalid send/receive option syntax 2019-02-04 18:19:44 +01:00
Christoph Klaffl 10b2012401
removed debug output 2019-02-04 18:08:01 +01:00
Christoph Klaffl 7d522fa590
fix unitialized variable 2019-02-04 17:56:27 +01:00
Christoph Klaffl 1053e9370e
missed sudo command for bookmark creation if source host is remote 2019-02-01 17:43:04 +01:00
Christoph Klaffl f0fec5348e
fix root pool parsing for remote hosts 2019-01-31 18:25:41 +01:00
Christoph Klaffl c5eebbe81d
implemented parsing of provided zfs send/recv options and whitelisting for each use case as needed 2019-01-31 18:14:35 +01:00
Christoph Klaffl 5107380cb3
codestyle 2019-01-31 00:47:13 +01:00
Christoph Klaffl d68d7b4afa
implemented creation of zfs bookmarks 2019-01-31 00:45:12 +01:00
Christoph Klaffl 7141eab594
fix bookmark edge case where replication was already done to the latest snapshot (+ test) 2019-01-30 23:49:38 +01:00
Christoph Klaffl 132c765e28
error out if no datasets are processed with recursive arg 2019-01-25 23:58:12 +01:00
Christoph Klaffl 85561ddcda
handle the case of mistyped dataset name nicely 2019-01-25 23:46:58 +01:00
Christoph Klaffl c12b6d716b
check pool capability for resumeable replication instead of checking for support in the zfs module 2019-01-25 23:25:22 +01:00
Christoph Klaffl 02219b0fcf
Merge branch 'master' into path 2019-01-25 16:10:47 +01:00
Christoph Klaffl 6f5e8463c2
Merge branch 'master' into silence-excludes 2019-01-25 16:09:57 +01:00
Jim Salter cd99c5f322
Merge pull request #295 from clinta/zfs_send_recv_options
Added in --sendoptions=OPTIONS and --recvoptions=OPTIONS to inject OP…
2019-01-22 15:04:09 -05:00
Jim Salter 252d496893
Merge pull request #313 from TerraTech/pr/mbuffer_size_option
syncoid: add '--mbuffer-size' option
2019-01-22 15:03:30 -05:00
Christoph Klaffl e4e90659a1
removed debug output from excludes loop 2019-01-07 12:08:55 +01:00
WG Dev f941d7f782 fix for #316 - CRITICAL ERROR: bookmarks couldn't be listed for <volume> 2019-01-06 10:46:24 +01:00
Matthew Swabey bd4eb491d8 Added in --sendoptions=OPTIONS and --recvoptions=OPTIONS to inject OPTIONS enabling things like syncoid --sendoptions=-Lcep and syncoid --recvoptions="-x property"
Co-authored-by: Clint Armstrong <clint@clintarmstrong.net>
2018-12-23 11:13:47 -05:00
root ca76f4268b syncoid: add '--mbuffer-size' option 2018-12-23 09:18:49 -05:00
Christoph Klaffl c2220145e1
Merge branch 'master' into reset-resume-state 2018-12-19 01:32:15 +01:00
Gionatan Danti 8568ac3e10 Fix missing coma 2018-12-10 11:21:43 +01:00
Christoph Klaffl 89f1d4e9a6
run compress commands bare too 2018-12-08 14:13:54 +01:00
Gionatan Danti 210e0aae64 Introduced (un)forced recv when using bookmarks also 2018-12-07 17:38:45 +01:00
Christoph Klaffl 941a770c12
updated comment regarding command existence check 2018-12-07 17:05:53 +01:00
Christoph Klaffl be50481374
use more portable/POSIX compatible ways to check for command existence 2018-12-07 17:03:49 +01:00
Christoph Klaffl 265b32b4b6
Merge branch 'master' into path 2018-12-07 16:54:59 +01:00
Gionatan Danti 1ed37e9891 Resolve a conflict 2018-12-06 09:26:22 +01:00
Gionatan Danti 17be840590 Updated to latest upstream 2018-12-06 09:18:29 +01:00
Christoph Klaffl 5fd4ff04bb
Merge branch 'master' into prepare-release 2018-12-04 23:42:18 +01:00
Christoph Klaffl e162433389
Merge branch 'master' into prepare-release 2018-12-04 23:11:36 +01:00
Christoph Klaffl 0c217ced8b
Merge branch 'master' into force-delete 2018-12-04 22:15:54 +01:00
Jim Salter 7f8055df5d
Merge pull request #254 from spheenik/master
Add xz compression
2018-12-04 16:07:45 -05:00
Christoph Klaffl be3cbb0e77
Merge branch 'master' into master 2018-12-04 22:03:06 +01:00
Ben Wolsieffer 7d742914e5 Add '--no-privilege-elevation' option to bypass root check. 2018-12-04 15:57:00 -05:00
Jim Salter bb79e7b5ec
Merge pull request #247 from phreaker0/bookmarks
implemented support for zfs bookmarks as fallback
2018-12-04 15:49:00 -05:00
Jim Salter f58ef21842
Merge pull request #290 from phreaker0/replicate-clones
replicate clones
2018-12-04 15:13:39 -05:00
Jim Salter f61d552631
Merge pull request #265 from phreaker0/lz4
add lz4 compression
2018-12-04 15:12:20 -05:00
Christoph Klaffl f153810d08
check for valid estimated send size to prevent a perl warning on systems which doesn't output size informations 2018-11-21 23:14:30 +01:00
Christoph Klaffl 9d6cb42f4d
added option to disable smart clone handling 2018-11-21 18:08:38 +01:00
Christoph Klaffl c8b880c5e2
implemented clone handling (try to recreate on target instead of full replication) 2018-11-21 18:01:40 +01:00
Gionatan Danti f04be06f39 Fixed indentation 2018-09-26 14:24:38 +02:00
Christoph Klaffl 9b2c2f29dc
don't use hardcoded paths 2018-09-12 10:00:09 +02:00
Christoph Klaffl d5f4d1c121
add lz4 compression 2018-09-05 19:01:15 +02:00
Christoph Klaffl 2fe97f13ad
prepare for v1.4.19 release 2018-09-05 10:07:05 +02:00
Christoph Klaffl f39ed1ec49
for remote target/source it's required to specify a user 2018-09-03 18:32:17 +02:00
Gionatan Danti df69c033d2 Merge branch 'master' of https://github.com/jimsalterjrs/sanoid 2018-08-16 15:43:56 +02:00
Martin Schrodt f51bb9db7e add xz compression 2018-08-15 16:07:01 +02:00
Christoph Klaffl a9e540ebcd
Merge branch 'master' into reset-resume-state 2018-08-08 00:43:00 +02:00
Christoph Klaffl 16613b604d
Merge branch 'bookmarks' into force-delete 2018-08-08 00:22:21 +02:00
Christoph Klaffl 7070d81775
Merge branch 'master' into bookmarks 2018-08-08 00:21:24 +02:00
Jim Salter eeedf38d57
Merge pull request #189 from attie/nosync
added ability to skip datasets... simply set syncoid:no-sync=true
2018-08-07 17:40:38 -04:00
Jim Salter 295b79ae14
Merge pull request #190 from attie/quiet
--quiet is not quiet
2018-08-07 17:37:46 -04:00
Attie Grande d0ba0bc284 handled empty syncoid:sync property - behaves like unset 2018-08-06 14:17:48 +01:00
Attie Grande f0a37310a5 implemented sync true/false/${HOSTS} filtering 2018-08-03 09:40:11 +01:00
Attie Grande c188e47a6d inverted sync/no-sync logic 2018-08-03 09:40:11 +01:00
Attie Grande b02b9a582b now obeying --quiet, and added 'INFO: ' prefix to skip message 2018-08-03 09:40:11 +01:00
Attie Grande 39d1fd38c1 added ability to skip datasets... simply set syncoid:no-sync=true 2018-08-03 09:40:11 +01:00
Attie Grande fb8edad885 compression warnings are no longer hidden by --quiet 2018-08-03 09:13:35 +01:00
Christoph Klaffl 9668567a87
continue replication on more critical errors 2018-07-30 22:53:48 +02:00
Christoph Klaffl 63eec4994c
don't die on some critical sync errors, but continue to replicate all the other datasets.
after all is done exit with an error code
2018-07-30 22:21:14 +02:00
Christoph Klaffl 020f57cb74
check for error while listing snapshots/bookmarks as this can be dangerous with force-delete 2018-07-30 09:43:03 +02:00
Christoph Klaffl 1cb1209c78
documented force-delete flag 2018-07-30 09:13:26 +02:00
Christoph Klaffl 7c68ef5e8f
return a non zero exit code if there was a problem replicating datasets 2018-07-29 13:16:53 +02:00
Christoph Klaffl 089516c58e
implemented force-delete flag to let syncoid destroy target datasets without matching snapshots/bookmarks 2018-07-29 12:43:46 +02:00
Christoph Klaffl 99dcf7f340
implemented support for zfs bookmarks, if no matching snapshots are found bookmarks are tried as fallback,
both stream and no-stream cases are supported
2018-07-27 22:52:36 +02:00
Jim Salter d1153a244f
Merge pull request #245 from phreaker0/local-source-bwlimit-fix
fix typo to make local source bwlimit work
2018-07-26 16:16:04 -04:00
Jim Salter f3996e0d99
Merge pull request #246 from phreaker0/typo
fixed typo
2018-07-26 16:15:08 -04:00
Christoph Klaffl e85c375bbe
fixed typo 2018-07-26 21:53:56 +02:00
Christoph Klaffl f5508a2403
fix typo to make local source bwlimit work 2018-07-26 21:46:50 +02:00
Christoph Klaffl abf3d458ff
check for partial resume state for non resume style transfers, if so reset state and retry 2018-07-26 21:43:09 +02:00
root 1371afa0e6 Merge branch 'master' of https://github.com/jimsalterjrs/sanoid 2018-07-24 11:10:59 +02:00
Piotr Paczynski 75d8174e69 Fix 'resume support' detection on FreeBSD 2018-07-18 01:21:22 +02:00
shodanshok 7171030bd0
Merge branch 'master' into master 2018-07-10 12:37:52 +02:00
Christoph Klaffl dc0afebb30
allow extra identifier to contain all characters for snapshots names which are allowed by zfs 2018-07-07 20:06:17 +02:00
Christoph Klaffl b32d5a6833
Merge remote-tracking branch 'upstream/master' into extra-identifier 2018-07-07 20:04:40 +02:00
Christoph Klaffl 77e066b3d6
Merge branch 'master' into skip-parent 2018-06-29 08:13:12 +02:00
shodanshok 10d15ef2f1
Merge branch 'master' into master 2018-06-29 00:01:32 +02:00
Jim Salter 21722c34b9
Merge pull request #208 from danielewood/patch-1
Added support for ZStandard compression.
2018-06-28 16:01:00 -04:00
Jim Salter c909f55bc4
Merge pull request #229 from UnlawfulMonad/master
Fix --help typo
2018-06-28 15:59:38 -04:00
Jim Salter 5e291b6f41
Merge pull request #238 from phreaker0/parser-fixes
correctly parse zfs column output (space can be included in the values)
2018-06-28 15:58:43 -04:00
Christoph Klaffl 1f88580199
implemented support for excluding datasets from replication with a regular expression 2018-06-28 17:45:18 +02:00
Christoph Klaffl 34b942ea45
correctly parse zfs column output (space can be included in the values) 2018-06-21 18:18:28 +02:00
Christoph Klaffl 0f8fee7637
added option for using extra identification in the snapshot name for replicating to multiple targets 2018-06-19 19:43:36 +02:00
Christoph Klaffl 70b259ac3c
typos 2018-06-19 18:24:34 +02:00
Christoph Klaffl c0c3050076
added option for skipping the parent dataset in recursive replication 2018-06-19 18:21:06 +02:00
Gionatan Danti 0aaac42057 skip pruning with --no-sync-snap (as by PR #218) 2018-06-11 10:16:18 +02:00
Gionatan Danti f9049085c8 Added "no-rollback" option to prevent any rollback on target host 2018-06-11 09:48:45 +02:00