|author||David Sterba <email@example.com>||2016-05-06 12:59:47 +0200|
|committer||David Sterba <firstname.lastname@example.org>||2016-05-11 16:37:12 +0200|
btrfs-progs: docs: update btrfs-send
Signed-off-by: David Sterba <email@example.com>
Diffstat (limited to 'Documentation')
1 files changed, 28 insertions, 17 deletions
diff --git a/Documentation/btrfs-send.asciidoc b/Documentation/btrfs-send.asciidoc
index e05342ff..1d547881 100644
@@ -3,7 +3,7 @@ btrfs-send(8)
-btrfs-send - send data of subvolume(s) to stdout/file.
+btrfs-send - generate a stream of changes between two subvolumes
@@ -11,38 +11,49 @@ SYNOPSIS
-Sends the subvolume(s) specified by <subvol> to stdout.
-<subvol> should be read-only here.
-By default, this will send the whole subvolume. To do an incremental
-send, use '-p <parent>'.
+This command will generate a stream of instructions that describe changes
+between two subvolumes. The stream can be consumed by the *btrfs receive*
+command to replicate the sent subvolume on a different filesystem.
+The command operates in two modes: full and incremental.
-If you want to allow btrfs to clone from any additional local snapshots,
-use '-c <clone-src>' (multiple times where applicable).
+All subvolumes involved in one send command must be read-only (ie. the
+read-only snapshots and this status cannot be changed if there's a running send
+operation that uses the subvolume).
-You must not specify clone sources unless you guarantee that these snapshots
-are exactly in the same state on both sides, the sender and the receiver.
+In the full mode, the entire subvolume data and metadata will end up in the
+In the incremental mode (options '-p' and '-c'), there can be one or more
+parent subvolumes that will establish the base for determining the changes.
+The final stream will be smaller compared to the full mode.
It is allowed to omit the '-p <parent>' option when '-c <clone-src>' options
are given, in which case *btrfs send* will determine a suitable parent among the
clone sources itself.
+You must not specify clone sources unless you guarantee that these snapshots
+are exactly in the same state on both sides, the sender and the receiver.
-Enable verbose debug output. Each occurrence of this option increases the
-verbose level more.
+enable verbose output, print generated commands in a readable form, (each
+occurrence of this option increases the verbosity level)
-If sending multiple subvols at once, use the new format and omit the <end cmd> between the subvols.
+if sending multiple subvolumes at once, use the new format and omit the
+'end cmd' marker in the stream separating the subvolumes
-Send an incremental stream from <parent> to <subvol>.
+send an incremental stream from 'parent' to 'subvol'
-Use this snapshot as a clone source for an incremental send (multiple allowed).
+use this snapshot as a clone source for an incremental send (multiple allowed)
-Output is normally written to stdout. To write to a file, use this option.
-An alternative would be to use pipes.
+output is normally written to standard outout so it can be eg. piped to
+receive, use this option to write it to a file
-Send in NO_FILE_DATA mode. The output stream does not contain any file
+send in 'NO_FILE_DATA' mode
+The output stream does not contain any file
data and thus cannot be used to transfer changes. This mode is faster and
useful to show the differences in metadata.