SYNCOID(8)
β¨ NAME β¨
syncoid β a tool that facilitates the asynchronous incremental replication of ZFS filesystems. bestie it's literally the glow-up your datasets deserve π
π¦ DESCRIPTION π¦
okay so, syncoid is a whole vibe: it takes your ZFS datasets and replicates them, incrementally, asynchronously, from one place to another. local, remote, whatever β it ate. no cap.
πΈ Usage πΈ
here's how you call her:
syncoid [options]... SOURCE TARGET
syncoid [options]... SOURCE [[USER]@]HOST:TARGET
syncoid [options]... [[USER]@]HOST:SOURCE TARGET
syncoid [options]... [[USER]@]HOST:SOURCE [[USER]@]HOST:TARGET
SOURCEβ the source ZFS dataset. can be either local or remote π πTARGETβ the target ZFS dataset. can be either local or remote π π
π OPTIONS π
the main character section. every single flag, no gatekeeping π
--compress=FORMATβ compresses data during transfer. currently accepted options aregzip,pigz-fast,pigz-slow,zstd-fast,zstdmt-fast,zstd-slow,zstdmt-slow,lz4,xz,lzo(that one's the default, btw) &none--identifier=EXTRAβ an extra identifier that gets included in the snapshot name. use it when you're replicating to multiple targets, so they don't all get the same name fr fr--recursive|rβ also transfers child datasets π§ (yes, the whole family)--skip-parentβ skips syncing of the parent dataset. does absolutely nothing without the--recursiveoption. literally nothing. it's giving unemployed π--source-bwlimit=<limit k|m|g|t>β bandwidth limit in bytes/kbytes/etc per second on the source transfer--target-bwlimit=<limit k|m|g|t>β bandwidth limit in bytes/kbytes/etc per second on the target transfer--mbuffer-size=VALUEβ specify thembuffersize (default:16M). please refer to thembuffer(1)manual page for the deets π«Ά--pv-options=OPTIONSβ configure howpvdisplays the progress bar, default is-p -t -e -r -b--no-streamβ replicates using the newest snapshot instead of intermediates--no-sync-snapβ does not create a new snapshot, only transfers existing ones--keep-sync-snapβ don't destroy created sync snapshots--create-bookmarkβ creates a zfs bookmark for the newest snapshot on the source after replication succeeds (only works with--no-sync-snap)--use-holdβ adds a hold to the newest snapshot on the source and target after replication succeeds, and removes the hold after the next successful replication. the hold name includes the identifier if set. this allows for separate holds in case of multiple targets--preserve-recordsizeβ preserves the recordsize on initial sends to the target--preserve-propertiesβ preserves locally set dataset properties similar to thezfs send -pflag, but this one will also work for encrypted datasets in non raw sends β¨--no-rollbackβ does not rollback snapshots on target (it probably requires a readonly target)--delete-target-snapshotsβ with this argument, snapshots which are missing on the source will be destroyed on the target. use this if you only want to handle snapshots on the source--exclude=REGEXβ DEPRECATED. equivalent to--exclude-datasets, but will be removed in a future release. ignored if--exclude-datasetsis also provided--exclude-datasets=REGEXβ exclude specific datasets which match the given regular expression. can be specified multiple times--exclude-snaps=REGEXβ exclude specific snapshots that match the given regular expression. can be specified multiple times. if a snapshot matches both theexclude-snapsandinclude-snapspatterns, then it will be excluded--include-snaps=REGEXβ only include snapshots that match the given regular expression. can be specified multiple times. if a snapshot matches both theexclude-snapsandinclude-snapspatterns, then it will be excluded--sendoptions=OPTIONSβ use advanced options forzfs send(the arguments are filtered as needed), e.g.syncoid --sendoptions="Lc e"setszfs send -L -c -e ...--recvoptions=OPTIONSβ use advanced options forzfs receive(the arguments are filtered as needed), e.g.syncoid --recvoptions="ux recordsize o compression=lz4"setszfs receive -u -x recordsize -o compression=lz4 ...--sshconfig=FILEβ specifies anssh_config(5)file to be used--sshkey=FILEβ specifies a ssh key to use to connect π--sshport=PORTβ connects to remote on a particular port--sshcipher|c=CIPHERβ passesCIPHERto ssh to use a particular cipher set--sshoption|o=OPTIONβ passesOPTIONto ssh for remote usage. can be specified multiple times--insecure-direct-connection=IP:PORT[,IP:PORT]β WARNING: DATA IS NOT ENCRYPTED. first address pair is for connecting to the target and the second for listening at the target. pls be careful bestie, this one is not playing around π--helpβ prints this helptext--versionβ prints the version number--debugβ prints out a lot of additional information during a syncoid run. it's giving yapper mode π£οΈ--monitor-versionβ currently does nothing π (iconic behaviour honestly)--quietβ suppresses non-error output--dumpsnapsβ dumps a list of snapshots during the run--no-command-checksβ do not check command existence before attempting transfer. not recommended.--no-resumeβ don't use the ZFS resume feature if available--no-clone-handlingβ don't try to recreate clones on target--no-privilege-elevationβ bypass the root check, for use with ZFS permission delegation--force-deleteβ remove target datasets recursively, if there are no matching snapshots/bookmarks (also overwrites conflicting named snapshots). yes, that's as real as it sounds β οΈ
that's the whole page, you're literally certified now π this one's syncoid 2.3.0, from August 2025, filed under the System Administration Utilities corner of the syncoid(8) manual β slay, go replicate something, mwah πβ¨
π¦ where this page comes from
- ubuntu resolute: sanoid 2.3.0-1 Β· GPL-3.0-or-later
- ubuntu stonking: sanoid 2.3.0-1 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms