btrfs-send

BTRFS-SEND(8) BTRFS BTRFS-SEND(8)

NAME

   btrfs-send - generate a stream of changes between two subvolume snapshots

SYNOPSIS

   btrfs send [-ve] [-p <parent>] [-c <clone-src>] [-f <outfile>] <subvol> [<subvol>...]

DESCRIPTION

   This  command  will  generate a stream of instructions that describe changes between two subvolume snapshots. The stream can be consumed by the btrfs receive
   command to replicate the sent snapshot on a different filesystem.  The command operates in two modes: full and incremental.

   All snapshots involved in one send command must be read-only, and this status cannot be changed as long as there's a running send  operation  that  uses  the
   snapshot.  Read-only mount of the subvolume is not sufficient, there's no way to guarantee that there won't be any other writable mount of the same subvolume
   that would potentially write while send would be running.

   In the full mode, the entire snapshot data and metadata will end up in the stream.

   In the incremental mode (options -p and -c), previously sent snapshots that are available on both the sending and receiving side can be used  to  reduce  the
   amount of information that has to be sent to reconstruct the sent snapshot on a different filesystem.

   The  -p  <parent> option can be omitted when -c <clone-src> options are given, in which case btrfs send will determine a suitable parent from among the clone
   sources.

   You must not specify clone sources unless you guarantee that these snapshots are exactly in the same state on both sides--both for the  sender  and  the  re‐
   ceiver. For implications of changed read-write status of a received snapshot please see section SUBVOLUME FLAGS in btrfs-subvolume(8).

   Options

   -e     if sending multiple subvolumes at once, use the new format and omit the 'end cmd' marker in the stream separating the subvolumes

   -p <parent>
          send an incremental stream from parent to subvol

   -c <clone-src>
          use this snapshot as a clone source for an incremental send (multiple allowed)

   -f <outfile>
          output is normally written to standard output so it can be, for example, piped to btrfs receive. Use this option to write it to a file instead.

   --no-data
          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 is useful to show the differ
          ences in metadata.

   --proto <N>
          use send protocol version N

          The default is 1, which was the original protocol version. Version 2 encodes file data slightly more efficiently; it is also required for sending com
          pressed  data  directly (see --compressed-data). Version 2 requires at least btrfs-progs 6.0 on both the sender and receiver and at least Linux 6.0 on
          the sender. Passing 0 means to use the highest version supported by the running kernel.

   --compressed-data
          send data that is compressed on the filesystem directly without decompressing it

          If the receiver supports the BTRFS_IOC_ENCODED_WRITE ioctl (added in Linux 6.0), it can also write it directly without decompressing  it.   Otherwise,
          the receiver will fall back to decompressing it and writing it normally.

          This requires protocol version 2 or higher. If --proto was not used, then --compressed-data implies --proto 2.

   -q|--quiet
          (deprecated) alias for global -q option

   -v|--verbose
          (deprecated) alias for global -v option

   Global options

   -q|--quiet
          suppress all messages except errors

   -v|--verbose
          increase output verbosity, print generated commands in a readable form

EXIT STATUS

   btrfs send returns a zero exit status if it succeeds. Non zero is returned in case of failure.

AVAILABILITY

   btrfs  is  part  of btrfs-progs.  Please refer to the documentation at https://btrfs.readthedocs.io or wiki http://btrfs.wiki.kernel.org for further informa
   tion.

SEE ALSO

   btrfs-receive(8), btrfs-subvolume(8), mkfs.btrfs(8)

6.2 Feb 28, 2023 BTRFS-SEND(8)