Commit Graph

275 Commits

Author SHA1 Message Date
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
Lucas Salibian e65879d1f8 Fix --help typo 2018-06-08 11:52:52 -04:00
Christoph Klaffl 63979973b2
if syncoid is instructed to skip snapshot creation it shouldn't attempt to prune existing ones 2018-05-02 00:15:14 +02:00
Gionatan Danti 679f1f3bda Reintroduced targetfsescaped 2018-05-01 09:39:35 +02:00
Gionatan Danti 793f1c782b Reintroduced escapeshellparam for remote command and updated README file 2018-05-01 09:32:18 +02:00
Gionatan Danti 670e76458c Reintroduce "no-resume", erroneously removed from previous commit 2018-04-30 22:45:05 +02:00
Gionatan Danti 2f518d3209 Update to current sanoid master and solved a (fake ?) confict in syncoid 2018-04-30 22:31:27 +02:00
Gionatan Danti f670631ca2 Added "no-clone-rollback" option to prevent clone rollback on target host 2018-04-30 21:50:17 +02:00
root 72245338a8 special character handling and resumable zfs receive support in syncoid 2018-04-25 15:21:56 -04:00
root 2732392088 fix use of uninitialized value in escapeshellparam() 2018-04-25 15:18:00 -04:00
root 4ebc0abef5 fix use of uninitialized string in escapeshellparam() 2018-04-25 14:58:35 -04:00
Christoph Klaffl 944a718351
Merge branch 'master' into resumeable-replication 2018-04-25 18:03:14 +02:00
Christoph Klaffl e6eec0aca0
fix snapshot list generation and incremental sync for snapshots containing whitespaces 2018-04-25 17:15:55 +02:00
Christoph Klaffl 1b5ab20b0d
use resumeable zfs send/receive as default if supported by source and target 2018-04-25 14:58:01 +02:00
danielewood ecf2a852b5
Added support for ZStandard compression.
Available in all major distros with a simple yum/apt-get/pkg.

References: 
ZSTD Compression by Allan Jude - https://www.youtube.com/watch?v=hWnWEitDPlM
Zstandard - https://facebook.github.io/zstd/
2018-04-12 17:43:08 -07:00
Christoph Klaffl d5f4b5abba
support resumable zfs send/receive 2018-02-13 18:47:55 +01:00
Attie Grande e902df1ef2 also made warnings quiet 2018-01-06 11:03:02 +00:00
Attie Grande 8a2a673c58 fixed loud 'NEWEST SNAPSHOT' message 2018-01-06 11:01:44 +00:00
Christoph Klaffl 85cc99c9e6
accidentally removed helptext 2017-12-10 16:56:56 +01:00
Christoph Klaffl bb5fc81c0d
Merge branch 'master' into special-char-fixes 2017-12-10 16:55:08 +01:00
Christoph Klaffl 3027831095
escape all remaining snapshot names which could have special characters 2017-12-10 16:32:49 +01:00
Christoph Klaffl adca6230b7
missed one regular expression 2017-12-10 16:10:49 +01:00
Christoph Klaffl e260f9095f
escape filesystem names as needed to avoid interpreting special characters like whitespace and stop
interpreting metacharacters in fs names for some regular expressions, fixes #40
2017-12-10 16:05:08 +01:00
Charles Pigott 90e6a401da Missed some compression variable renames 2017-11-08 19:01:52 +00:00
Charles Pigott 11da17fa4a Fix compress arg handling 2017-11-08 19:01:52 +00:00
Charles Pigott 21a6881c4b Unrevert syncoid 2017-11-08 19:01:52 +00:00
Christoph Klaffl dbe33170e7
removed trailing whitespace 2017-11-08 17:30:52 +01:00
jimsalterjrs 368a9fe78e default to not manually specifying an SSH cipher 2017-11-08 11:02:39 -05:00
jimsalterjrs 0be8076145 revert syncoid due to compress options error in GetOpt version 2017-11-08 10:52:23 -05:00
Charles Pigott c416be3eab Remember to set default compression properly 2017-10-12 15:31:12 +01:00
Charles Pigott 7756dff623 Format compression as a hash of hashes, rather than a large if block 2017-10-12 15:14:03 +01:00
Charles Pigott f04c71604d Missed a couple of syncoid options 2017-10-12 14:54:36 +01:00
Charles Pigott ecde5acf4c An array needed a deref, and an if condition got inverted 2017-10-03 14:23:29 +01:00
Charles Pigott f8ea8f907d Add GetOptions helptext to syncoid
Lots of changes here
Notably:
nocommandcheck is now no-command-check
sshoptions can be specified multiple times
sshcipher now defaults to whatever your ssh client wants to
compress no longer accepts "no" or "0"
2017-10-03 14:23:29 +01:00
Charles Pigott b4d649fce5 Added some extra information to error messages concerning the filesystem they refer to 2017-08-11 13:30:44 +01:00
Jim Salter 2a13f1609d Update syncoid 2017-08-09 12:06:55 -04:00
Michael Brock 7e608f8a8d Merge branch 'master' of https://github.com/jimsalterjrs/sanoid 2017-07-28 18:39:21 -05:00
Michael Brock a26e3c4ad7 Updated to allow multiple options (-o) to be passed. 2017-07-28 17:43:47 -05:00
Jim Salter 96e66d6395 Update syncoid 2017-07-27 15:59:26 -04:00
Michael Brock c4ae73491c Additional changes to support -o usage 2017-07-26 19:02:13 -05:00
Michael Brock 7f00c01e90 Add -o option to pass ssh options into syncoid 2017-07-25 22:21:29 -05:00
jimsalterjrs 2bf3547eb5 fixed syncoid regression in #112 (sort creation, match guid) 2017-07-17 09:44:07 -04:00
jimsalterjrs 00cb721922 1.4.13 syncoid no longer dies on first replication failure in recursive replication calls 2017-07-12 17:03:33 -04:00
jimsalterjrs cf68e81d03 keep trying to replicate other child datasets even if one dataset fails 2017-07-12 16:59:58 -04:00
jimsalterjrs bb1e7ce481 fixed bug DIE-ing unnecessarily when no matching snapshot existed on target but --no-sync-snap had not been set 2017-07-12 16:47:37 -04:00
jimsalterjrs 243653fd9f 1.4.12 strip whitespace in template defs in sanoid.conf per #61 2017-07-12 16:25:34 -04:00
jimsalterjrs 7e22bff175 1.4.11 enhanced Syncoid to use `guid` instead of `creation` for extra snapshot identification (beyond the name) 2017-07-12 15:49:45 -04:00
jimsalterjrs b536f0c6f7 1.4.10 - add --compress=pigz-fast and --compress=pigz-slow to syncoid 2017-07-12 15:23:23 -04:00
jimsalterjrs 84a747630b added --compress=pigz-fast and --compress=pigz-slow to syncoid 2017-07-12 15:16:55 -04:00
jimsalterjrs 804fd0fd1b add -c option to specify ssh cipher directly from command line 2017-07-04 17:07:54 -04:00
Rolf Schäuble 47ff88db9d Fix #91: do not use exit codes > 255
Exit codes > 256 are treated by bash as `exit_code % 256`, which is confusing. Furthermore, using code 256 is particularly problematic, as 256%256=0, which means success, and is not was was intended here.

For further information about special exit codes, see http://tldp.org/LDP/abs/html/exitcodes.html.
2017-06-20 11:42:35 +02:00
Jim Salter 998d3fe5e5 controlpersist=yes --> controlpersist=1m
Make the SSH control channel die after 1m, to avoid complaints of accumulating dead mux channels.
2017-05-03 15:37:07 -04:00
Jim Salter ab12e59485 Merge pull request #66 from ZmK/patch-1
Bug correction in 'getsnaps'
2017-05-03 15:14:41 -04:00
Jim Salter 5cadb17d03 Merge pull request #59 from lalloni/master
List only filesystems when finding children
2017-05-03 15:05:07 -04:00
Jim Salter e8906de2f0 only list snapshots in $getsnapcmd 2017-05-03 15:04:32 -04:00
Jim Salter 5fa92fa8cb don't accidentally pick up snapshots when getting child datasets 2017-05-03 15:02:10 -04:00
AndCycle d3ca4371a1 added missing isroot args 2017-04-13 22:37:09 +08:00
jimsalterjrs 3437326a9c wups - forgot to update version strings in sanoid and syncoid themselves 2017-03-13 15:02:47 -04:00
jimsalterjrs 5168481545 1.4.8 added --no-stream and --no-sync-snap to allow simple -i incrementals (no intermediate stream), and sync to newest pre-existing snapshot without creating a syncoid snapshot 2017-03-13 14:57:45 -04:00
ZakMcKraken 8534369204 Bug correction in 'getsnaps'
getsnaps not working when snapshot name contains 'creation'
2017-01-17 17:38:35 +01:00
Jim Salter ffa22c9105 Update syncoid
cause raw invocation to print typical/minimal usage example, as per @rriley and @fajarnugraha suggestions
2016-12-28 11:01:11 -05:00
Jim Salter d437d9f8df Update syncoid 2016-12-28 10:58:11 -05:00
Pablo Lalloni 50f07db14f List only filesystems when finding children
Fixes #58
2016-11-03 02:40:46 -03:00
Nathan Walp 7eb772fef8 add --quiet option 2016-08-16 22:36:58 -04:00
Jim Salter d84fd9e1ab more warning fixing, sigh 2016-08-07 15:26:32 -04:00
Jim Salter 7bd2bed91b more uninitialized value shushing 2016-08-07 15:22:19 -04:00
Jim Salter 2876637655 fixed use of uninitialized value warnings in syncoid 2016-08-07 12:13:32 -04:00
Jim Salter adb14d2343 changed die to warn if syncoid fails to zfs destroy a sync snapshot - no good reason to stop a sync for that 2016-08-07 11:45:46 -04:00
Jim Salter 95f1ecb159 1.4.7 reverted shebangs to Linux style, added -F to zfs receive, dyked out set readonly behavior to mitigate upstream bugs in mount/unmount 2016-06-13 11:42:17 -04:00
Jim Salter c0f065b0f0 1.4.6c - merged @gusson's --sshport argument enhancement for syncoid 2016-05-27 19:01:51 -04:00
Jim Salter cd19307ab4 Merge branch 'gusson-ssh_port'
Conflicts:
	CHANGELIST
	findoid
	sanoid
	syncoid
2016-05-27 18:58:48 -04:00
Jim Salter dd4ef0fa53 1.4.6c merge @gusson's --sshport argument for syncoid 2016-05-27 18:57:55 -04:00
Jim Salter 6eaa303327 1.4.6b - updated cipherlist for syncoid to chacha20-poly1305@openssh.com,arcfour 2016-05-27 18:24:27 -04:00
Albin Gustavsson 5b3693357e Added options to set ssh port.
ssh port can be set by passing the -sshport variable on the command line or by changing the $sshport variable.
2016-05-26 20:32:09 +02:00
Jim Salter 17759ce659 1.4.6a - mitigate ZFS on Linux bug #4473 by complaining not dying if set readonly fails. 2016-05-25 17:00:19 -04:00
Jim Salter 546bfabf6d added ==0 or die to all system calls in sanoid and syncoid that didn't already have them 2016-05-23 18:55:42 -04:00
Jim Salter 839d65d808 1.4.5 changed shebang to '#!/usr/bin/env perl' for enhanced FreeBSD compatibility 2016-05-23 12:35:11 -04:00
Thomas M. Lapp c87279f899 Added -sshkey arg for automated cron runs 2016-03-08 10:29:50 -05:00
Jim Salter 633c5e237d jjlawrens' portability pull requests + configdir option for sanoid 2015-12-31 14:52:47 -05:00
Jim Salter e19b0ab595 Merge pull request #19 from jjlawren/ps_compatibility
Use UNIX-style 'ps' options everywhere for compatibility
2015-12-31 14:43:43 -05:00
Jason Lawrence 48d1de5b0c Use UNIX-style 'ps' options everywhere for compatibility 2015-12-31 11:54:05 -06:00
Jason Lawrence 921ec1b3da Also check for 'zfs receive' alias 2015-12-31 11:03:59 -06:00
Jim Salter 3280856d6f minor fix - add a 2>&1 to get rid of the 'Exit request sent.' noise at the end when killing the ssh master 2015-09-18 12:14:54 -04:00
Jim Salter 257794c2f1 1.4.3 - added SSH persistence - speeds up SSH overhead by 300%+ 2015-09-18 12:03:25 -04:00
Jim Salter a334fc9e15 1.4.2 - remove -r flag from zfs destroy command for pruned snapshots 2015-05-11 11:13:27 -04:00
Jim Salter 9c3bf32fa5 more robust zpool list parsing 2015-04-11 14:09:50 -04:00
Jim Salter c0f1131fa6 added findoid tool 2015-04-06 18:10:02 -04:00
Jim Salter 8a6048635a whoops - keep process_children_only from being set from blank value in defaults.conf 2015-04-02 11:24:00 -04:00