BACKUP-COPY
NAME
backup-copy - copy backup directories
SYNOPSIS
backup-copy |
[<RSYNC-OPTION>]... <SRC>[/[.]]... | ||
backup-copy |
[<RSYNC-OPTION>]... [<USER>@]<HOST>:<SRC>[/[.]]... | ||
backup-copy |
[<RSYNC-OPTION>]... [<USER>@]<HOST>::<MODULE>[/<SRC>][/[.]]... | ||
backup-copy |
[<RSYNC-OPTION>]... rsync://[<USER>@]<HOST>[:<PORT>]/<MODULE>[/<SRC>][/[.]]... | ||
backup-copy |
<OPTION>... |
DESCRIPTION
Copy backup directories from sources using backup-copy-rsync(1) and thus rsync(1).
A backup directory is copied using the following steps:
An empty backup directory is created in a temporary directory.
Files and directories are copied from a source backup directory to the newly created backup directory using backup-copy-rsync(1) and thus rsync(1).
A new symbolink link to denote the latest backup directory is created in a temporary directory.
The newly created backup directory and the newly created symbolink link are moved to the final location.
Disk usage is minimised and transfers are speeded up by hard linking files from old backup directories to newly created backup directories whenever possible (when files in sources and previous backup directories are identical in content and in all preserved attributes) and by sharing physical storage between files (reflinking) on supported filesystems (btrfs, s3ql and xfs).
OPTIONS
-h, --help[=<FORMAT>]
Show this help message and exit.
-V, --version
Show version information and exit.
Rsync
options:
--verbose, -v
increase verbosity
--info=FLAGS
fine-grained informational verbosity
--debug=FLAGS
fine-grained debug verbosity
--stderr=e|a|c
change stderr output mode (default: errors)
--quiet, -q
suppress non-error messages
--no-motd
suppress daemon-mode MOTD
--checksum, -c
skip based on checksum, not mod-time & size
--archive, -a
archive mode is -rlptgoD (no -A, -X, -U, -N, -H)
--no-OPTION
turn off an implied OPTION (e.g. --no-D)
--recursive, -r
recurse into directories
--relative, -R
use relative path names
--no-implied-dirs
don’t send implied dirs with --relative
--backup, -b
make backups (see --suffix & --backup-dir)
--backup-dir=DIR
make backups into hierarchy based in DIR
--suffix=SUFFIX
backup suffix (default ~ w/o --backup-dir)
--update, -u
skip files that are newer on the receiver
--inplace
update destination files in-place
--append
append data onto shorter files
--append-verify
--append w/old data in file checksum
--dirs, -d
transfer directories without recursing
--old-dirs, --old-d
works like --dirs when talking to old rsync
--mkpath
create destination’s missing path components
--links, -l
copy symlinks as symlinks
--copy-links, -L
transform symlink into referent file/dir
--copy-unsafe-links
only "unsafe" symlinks are transformed
--safe-links
ignore symlinks that point outside the tree
--munge-links
munge symlinks to make them safe & unusable
--copy-dirlinks, -k
transform symlink to dir into referent dir
--keep-dirlinks, -K
treat symlinked dir on receiver as dir
--hard-links, -H
preserve hard links
--perms, -p
preserve permissions
--executability, -E
preserve executability
--chmod=CHMOD
affect file and/or directory permissions
--acls, -A
preserve ACLs (implies --perms)
--xattrs, -X
preserve extended attributes
--owner, -o
preserve owner (super-user only)
--group, -g
preserve group
--devices
preserve device files (super-user only)
--copy-devices
copy device contents as a regular file
--write-devices
write to devices as files (implies --inplace)
--specials
preserve special files
-D |
same as --devices --specials |
--times, -t
preserve modification times
--atimes, -U
preserve access (use) times
--open-noatime
avoid changing the atime on opened files
--crtimes, -N
preserve create times (newness)
--omit-dir-times, -O
omit directories from --times
--omit-link-times, -J
omit symlinks from --times
--super
receiver attempts super-user activities
--fake-super
store/recover privileged attrs using xattrs
--sparse, -S
turn sequences of nulls into sparse blocks
--preallocate
allocate dest files before writing them
--dry-run, -n
perform a trial run with no changes made
--whole-file, -W
copy files whole (w/o delta-xfer algorithm)
--checksum-choice=STR
choose the checksum algorithm (aka --cc)
--one-file-system, -x
don’t cross filesystem boundaries
--block-size=SIZE, -B
force a fixed checksum block-size
--rsh=COMMAND, -e
specify the remote shell to use
--rsync-path=PROGRAM
specify the rsync to run on remote machine
--existing
skip creating new files on receiver
--ignore-existing
skip updating files that exist on receiver
--remove-source-files
sender removes synchronized files (non-dir)
--del |
an alias for --delete-during |
--delete
delete extraneous files from dest dirs
--delete-before
receiver deletes before xfer, not during
--delete-during
receiver deletes during the transfer
--delete-delay
find deletions during, delete after
--delete-after
receiver deletes after transfer, not during
--delete-excluded
also delete excluded files from dest dirs
--ignore-missing-args
ignore missing source args without error
--delete-missing-args
delete missing source args from destination
--ignore-errors
delete even if there are I/O errors
--force
force deletion of dirs even if not empty
--max-delete=NUM
don’t delete more than NUM files
--max-size=SIZE
don’t transfer any file larger than SIZE
--min-size=SIZE
don’t transfer any file smaller than SIZE
--max-alloc=SIZE
change a limit relating to memory alloc
--partial
keep partially transferred files
--partial-dir=DIR
put a partially transferred file into DIR
--delay-updates
put all updated files into place at end
--prune-empty-dirs, -m
prune empty directory chains from file-list
--numeric-ids
don’t map uid/gid values by user/group name
--usermap=STRING
custom username mapping
--groupmap=STRING
custom groupname mapping
--chown=USER:GROUP
simple username/groupname mapping
--timeout=SECONDS
set I/O timeout in seconds
--contimeout=SECONDS
set daemon connection timeout in seconds
--ignore-times, -I
don’t skip files that match size and time
--size-only
skip files that match in size
--modify-window=NUM, -@
set the accuracy for mod-time comparisons
--temp-dir=DIR, -T
create temporary files in directory DIR
--fuzzy, -y
find similar file for basis if no dest file
--compare-dest=DIR
also compare destination files relative to DIR
--copy-dest=DIR
... and include copies of unchanged files
--link-dest=DIR
hardlink to files in DIR when unchanged
--compress, -z
compress file data during the transfer
--compress-choice=STR
choose the compression algorithm (aka --zc)
--compress-level=NUM
explicitly set compression level (aka --zl)
--skip-compress=LIST
skip compressing files with suffix in LIST
--cvs-exclude, -C
auto-ignore files in the same way CVS does
--filter=RULE, -f
add a file-filtering RULE
-F |
same as --filter=’dir-merge /.rsync-filter’ repeated: --filter=’- .rsync-filter’ |
--exclude=PATTERN
exclude files matching PATTERN
--exclude-from=FILE
read exclude patterns from FILE
--include=PATTERN
don’t exclude files matching PATTERN
--include-from=FILE
read include patterns from FILE
--files-from=FILE
read list of source-file names from FILE
--from0, -0
all *-from/filter files are delimited by 0s
--old-args
disable the modern arg-protection idiom
--secluded-args, -s
use the protocol to safely send the args
--trust-sender
trust the remote sender’s file list
--copy-as=USER[:GROUP]
specify user & optional group for the copy
--address=ADDRESS
bind address for outgoing socket to daemon
--port=PORT
specify double-colon alternate port number
--sockopts=OPTIONS
specify custom TCP options
--blocking-io
use blocking I/O for the remote shell
--outbuf=N|L|B
set out buffering to None, Line, or Block
--stats
give some file-transfer stats
--8-bit-output, -8
leave high-bit chars unescaped in output
--human-readable, -h
output numbers in a human-readable format
--progress
show progress during transfer
-P |
same as --partial --progress |
--itemize-changes, -i
output a change-summary for all updates
--remote-option=OPT, -M
send OPTION to the remote side only
--out-format=FORMAT
output updates using the specified FORMAT
--log-file=FILE
log what we’re doing to the specified FILE
--log-file-format=FMT
log updates using the specified FMT
--password-file=FILE
read daemon-access password from FILE
--early-input=FILE
use FILE for daemon’s early exec input
--list-only
list the files instead of copying them
--bwlimit=RATE
limit socket I/O bandwidth
--stop-after=MINS
Stop rsync after MINS minutes have elapsed
--stop-at=y-m-dTh:m
Stop rsync at the specified point in time
--fsync
fsync every written file
--write-batch=FILE
write a batched update to FILE
--only-write-batch=FILE
like --write-batch but w/o updating dest
--read-batch=FILE
read a batched update from FILE
--protocol=NUM
force an older protocol version to be used
--iconv=CONVERT_SPEC
request charset conversion of filenames
--checksum-seed=NUM
set block/file checksum seed (advanced)
--ipv4, -4
prefer IPv4
--ipv6, -6
prefer IPv6
OPERANDS
<SRC>/[.]
A local directory containing backup directories to be copied.
<SRC> |
A local backup directory to be copied. |
[<USER>@]<HOST>:<SRC>/[.]
A remote directory containing backup directories to be copied via a remote shell.
[<USER>@]<HOST>:<SRC>
A remote backup directory to be copied via a remote shell.
[<USER>@]<HOST>::<MODULE>[/<SRC>]/[.]
A remote directory containing backup directories to be copied via an rsync daemon.
[<USER>@]<HOST>::<MODULE>/<SRC>
A remote backup directory to be copied via an rsync daemon.
rsync://[<USER>@]<HOST>[:<PORT>]/<MODULE>[/<SRC>]/[.]
A remote directory containing backup directories to be copied via an rsync daemon.
rsync://[<USER>@]<HOST>[:<PORT>]/<MODULE>/<SRC>
A remote backup directory to be copied via an rsync daemon.
FILES
./<YEAR>
A yearly backup directory.
./<YEAR>[-]<MONTH>
A monthly backup directory.
./<YEAR>[-]W<WEEK>
A weekly backup directory.
./<YEAR>[-]<MONTH>[-]<DAY>
A daily backup directory.
./<YEAR>[-]W<WEEK>[-]<DAY>
A daily backup directory.
./<YEAR>[-]<MONTH>[-]<DAY>T<HOUR>
An hourly backup directory.
./<YEAR>[-]W<WEEK>[-]<DAY>T<HOUR>
An hourly backup directory.
./<YEAR>[-]<MONTH>[-]<DAY>T<HOUR>[:]<MINUTE>
A minutely backup directory.
./<YEAR>[-]W<WEEK>[-]<DAY>T<HOUR>[:]<MINUTE>
A minutely backup directory.
./<YEAR>[-]<MONTH>[-]<DAY>T<HOUR>[:]<MINUTE>[:]<SECOND>
A secondly backup directory.
./<YEAR>[-]W<WEEK>[-]<DAY>T<HOUR>[:]<MINUTE>[:]<SECOND>
A secondly backup directory.
./latest
A symbolic link to the latest backup directory.
./conf/copy-config
An optional configuration file used by backup-copy-rsync(1) containing long option names (without leading slashes) and optional option arguments to be passed to rsync(1) when copying a backup directory.
./conf/copy-config.d
An optional directory used by backup-copy-rsync(1) containing configuration files similar to the ./conf/copy-config configuration file containing long option names (without leading slashes) and optional option arguments to be passed to rsync(1) when copying a backup directory. The names of the files must consist of only characters matching the pattern [[:alnum:]_.-].
./conf/rsh
An optional script to be used as a remote shell instead of the plain ssh(1). This script can be used for setting identity files and proxy commands, for instance.
./conf/rsync-config
An optional configuration file used by backup-rsync(1) used by backup-copy-rsync(1) and backup-create-rsync(1) used by backup-copy(1) and backup-create(1) containing long option names (without leading slashes) and optional option arguments to be passed to rsync(1).
./conf/rsync-config.d
An optional directory used by backup-rsync(1) used by backup-copy-rsync(1) and backup-create-rsync(1) used by backup-copy(1) and backup-create(1) containing configuration files similar to the ./conf/rsync-config configuration file containing long option names (without leading slashes) and optional option arguments to be passed to rsync(1). The names of the files must consist of only characters matching the pattern [[:alnum:]_.-].
./tmp/ |
A temporary directory to be used for copying backup directories. |
./tools/backup-copy-rsync
Used for copying files using rsync(1).
COPYRIGHT
Copyright © 2010 - 2024 Eero Häkkinen <Eero+rsync-backup@Häkkinen.fi>
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
SEE ALSO
backup-clean-tmp(1), backup-copy-rsync(1), backup-help(1), backup-mirror-sources(1)
rsync(1),
ssh(1)
Home
page