system enabled verified low v1.0.0

rsync

Fast, versatile file synchronization and transfer tool with delta encoding, compression, and remote sync over SSH.

📋 Live Preview
rsync {verbose} {info} {debug} {stderr} {quiet}
๐Ÿ“Ž verbose ๐Ÿ“Ž info ๐Ÿ“Ž debug ๐Ÿ“Ž stderr ๐Ÿ“Ž quiet
rsync {verbose} {info} {debug} {stderr} {quiet}

Sandbox: execFile · Timeout: 600s

Capabilities

filesystem.sync.local
filesystem.sync.remote
filesystem.sync.incremental
filesystem.sync.archive
filesystem.transfer.delta
filesystem.backup

Parameters

Name Type Required Default Description Aliases
verbose string No - increase verbosity -v, --verbose
info string No - fine-grained informational verbosity --info
debug string No - fine-grained debug verbosity --debug
stderr string No errors change stderr output mode --stderr
quiet string No - suppress non-error messages -q, --quiet
no-motd string No - suppress daemon-mode MOTD --no-motd
checksum string No - skip based on checksum, not mod-time & size -c, --checksum
archive string No - archive mode is -rlptgoD (no -A,-X,-U,-N,-H) -a, --archive
no-OPTION string No - turn off an implied OPTION (e.g. --no-D) --no-OPTION
recursive string No - recurse into directories -r, --recursive
relative string No - use relative path names -R, --relative
no-implied-dirs string No - don't send implied dirs with --relative --no-implied-dirs
backup string No - make backups (see --suffix & --backup-dir) -b, --backup
backup-dir file No - make backups into hierarchy based in DIR --backup-dir
suffix string No - backup suffix (default ~ w/o --backup-dir) --suffix
update string No - skip files that are newer on the receiver -u, --update
inplace string No - update destination files in-place --inplace
append string No - append data onto shorter files --append
append-verify string No - --append w/old data in file checksum --append-verify
dirs string No - transfer directories without recursing -d, --dirs
old-dirs string No - works like --dirs when talking to old rsync --old-dirs, --old-d
mkpath string No - create destination's missing path components --mkpath
links string No - copy symlinks as symlinks -l, --links
copy-links string No - transform symlink into referent file/dir -L, --copy-links
copy-unsafe-links string No - only "unsafe" symlinks are transformed --copy-unsafe-links
safe-links string No - ignore symlinks that point outside the tree --safe-links
munge-links string No - munge symlinks to make them safe & unusable --munge-links
copy-dirlinks string No - transform symlink to dir into referent dir -k, --copy-dirlinks
keep-dirlinks string No - treat symlinked dir on receiver as dir -K, --keep-dirlinks
hard-links string No - preserve hard links -H, --hard-links
perms string No - preserve permissions -p, --perms
executability string No - preserve executability -E, --executability
chmod file No - affect file and/or directory permissions --chmod
acls string No - preserve ACLs (implies --perms) -A, --acls
xattrs string No - preserve extended attributes -X, --xattrs
owner string No - preserve owner (super-user only) -o, --owner
group string No - preserve group -g, --group
devices string No - preserve device files (super-user only) --devices
copy-devices string No - copy device contents as a regular file --copy-devices
write-devices string No - write to devices as files (implies --inplace) --write-devices
specials string No - preserve special files --specials
times string No - preserve modification times -t, --times
atimes string No - preserve access (use) times -U, --atimes
open-noatime string No - avoid changing the atime on opened files --open-noatime
crtimes string No - preserve create times (newness) -N, --crtimes
omit-dir-times string No - omit directories from --times -O, --omit-dir-times
omit-link-times string No - omit symlinks from --times -J, --omit-link-times
super string No - receiver attempts super-user activities --super
fake-super string No - store/recover privileged attrs using xattrs --fake-super
sparse string No - turn sequences of nulls into sparse blocks -S, --sparse
preallocate string No - allocate dest files before writing them --preallocate
dry-run string No - perform a trial run with no changes made -n, --dry-run
whole-file string No - copy files whole (w/o delta-xfer algorithm) -W, --whole-file
checksum-choice string No - choose the checksum algorithm (aka --cc) --checksum-choice
one-file-system string No - don't cross filesystem boundaries -x, --one-file-system
block-size integer No - force a fixed checksum block-size -B, --block-size
rsh string No - specify the remote shell to use -e, --rsh
rsync-path string No - specify the rsync to run on remote machine --rsync-path
existing string No - skip creating new files on receiver --existing
ignore-existing string No - skip updating files that exist on receiver --ignore-existing
remove-source-files string No - sender removes synchronized files (non-dir) --remove-source-files
del string No - an alias for --delete-during --del
delete string No - delete extraneous files from dest dirs --delete
delete-before string No - receiver deletes before xfer, not during --delete-before
delete-during string No - receiver deletes during the transfer --delete-during
delete-delay string No - find deletions during, delete after --delete-delay
delete-after string No - receiver deletes after transfer, not during --delete-after
delete-excluded string No - also delete excluded files from dest dirs --delete-excluded
ignore-missing-args string No - ignore missing source args without error --ignore-missing-args
delete-missing-args string No - delete missing source args from destination --delete-missing-args
ignore-errors string No - delete even if there are I/O errors --ignore-errors
force string No - force deletion of dirs even if not empty --force
max-delete integer No - don't delete more than NUM files --max-delete
max-size integer No - don't transfer any file larger than SIZE --max-size
min-size integer No - don't transfer any file smaller than SIZE --min-size
max-alloc integer No - change a limit relating to memory alloc --max-alloc
partial string No - keep partially transferred files --partial
partial-dir file No - put a partially transferred file into DIR --partial-dir
delay-updates string No - put all updated files into place at end --delay-updates
prune-empty-dirs file No - prune empty directory chains from file-list -m, --prune-empty-dirs
numeric-ids string No - don't map uid/gid values by user/group name --numeric-ids
usermap string No - custom username mapping --usermap
groupmap string No - custom groupname mapping --groupmap
chown string No - simple username/groupname mapping --chown
timeout integer No - set I/O timeout in seconds --timeout
contimeout integer No - set daemon connection timeout in seconds --contimeout
ignore-times string No - don't skip files that match size and time -I, --ignore-times
size-only string No - skip files that match in size --size-only
modify-window integer No - -t, --modify-window
temp-dir file No - create temporary files in directory DIR -T, --temp-dir
fuzzy string No - find similar file for basis if no dest file -y, --fuzzy
compare-dest file No - also compare destination files relative to DIR --compare-dest
copy-dest file No - and include copies of unchanged files --copy-dest
link-dest file No - hardlink to files in DIR when unchanged --link-dest
compress string No - compress file data during the transfer -z, --compress
compress-choice string No - choose the compression algorithm (aka --zc) --compress-choice
compress-level integer No - explicitly set compression level (aka --zl) --compress-level
skip-compress array No - skip compressing files with suffix in LIST --skip-compress
cvs-exclude string No - auto-ignore files in the same way CVS does -C, --cvs-exclude
filter string No - add a file-filtering RULE -f, --filter
exclude string No - exclude files matching PATTERN --exclude
exclude-from file No - read exclude patterns from FILE --exclude-from
include string No - don't exclude files matching PATTERN --include
include-from file No - read include patterns from FILE --include-from
files-from file No - read list of source-file names from FILE --files-from
from0 array No - all *-from/filter files are delimited by 0s -0, --from0
old-args string No - disable the modern arg-protection idiom --old-args
secluded-args string No - use the protocol to safely send the args -s, --secluded-args
trust-sender string No - trust the remote sender's file list --trust-sender
copy-as string No - specify user & optional group for the copy --copy-as
address string No - bind address for outgoing socket to daemon --address
port integer No - specify double-colon alternate port number --port
sockopts string No - specify custom TCP options --sockopts
blocking-io string No - use blocking I/O for the remote shell --blocking-io
outbuf integer No - set out buffering to None, Line, or Block --outbuf
stats string No - give some file-transfer stats --stats
flag-8 string No - leave high-bit chars unescaped in output -8, --8-bit-output
human-readable string No - output numbers in a human-readable format -h, --human-readable
progress string No - show progress during transfer --progress
itemize-changes string No - output a change-summary for all updates -i, --itemize-changes
remote-option string No - -M, --remote-option
out-format string No - output updates using the specified FORMAT --out-format
log-file file No - log what we're doing to the specified FILE --log-file
log-file-format string No - log updates using the specified FMT --log-file-format
password-file file No - read daemon-access password from FILE --password-file
early-input file No - use FILE for daemon's early exec input --early-input
list-only string No - list the files instead of copying them --list-only
bwlimit number No - limit socket I/O bandwidth --bwlimit
stop-after string No - Stop rsync after MINS minutes have elapsed --stop-after
stop-at string No - Stop rsync at the specified point in time -m, -d, --stop-at
fsync string No - fsync every written file --fsync
write-batch file No - write a batched update to FILE --write-batch
only-write-batch file No - --only-write-batch, --write-batch
read-batch file No - read a batched update from FILE --read-batch
protocol integer No - force an older protocol version to be used --protocol
iconv file No - request charset conversion of filenames --iconv
checksum-seed integer No - set block/file checksum seed (advanced) --checksum-seed
ipv4 string No - prefer IPv4 -4, --ipv4
ipv6 string No - prefer IPv6 -6, --ipv6
version string No - print the version + other info and exit -V, --version
help string No - show this help (* -h is help only on its own) -h, --help

Artifacts

TypeDescriptionMIMESchemaTrust
filesystem.directory.syncedDestination directory after rsync operation--verified
system.backup.archiveBackup archive created via rsync--verified

Contract

Inputs

filesystem.directory.source

Source directory or file path

filesystem.directory.destination

Destination directory path

Outputs

filesystem.directory.synced

Synchronized destination directory

Side effects: filesystem_write

Workflow Edges

Produces

filesystem.directory.synced

Consumes

filesystem.directory.sourcefilesystem.directory.destination

Resource Profile

ResourceValue
CPUlow
Memory32 MB
Networkmedium
Disk I/Ohigh

Examples

Local directory sync

rsync -av /source/dir/ /backup/dir/

Remote sync over SSH

rsync -avz /local/dir/ user@remote:/backup/dir/

Pull remote directory to local

rsync -avz user@remote:/source/dir/ /local/dir/

Incremental backup with hardlinks

rsync -av --link-dest=../previous /source/ /backup/current/

Dry run to preview changes

rsync -avn /source/ /destination/

Sync with exclusions

rsync -av --exclude='node_modules' --exclude='.git' /project/ /backup/

Documentation

Rsync โ€” File Synchronization

Rsync is a fast, versatile file synchronization tool that transfers only the differences between source and destination (delta encoding), making repeated transfers extremely efficient.

How It Works

  1. Scan โ€” Rsync examines source and destination files
  2. Delta โ€” Only the changed parts of files are transferred
  3. Apply โ€” Changes are written to the destination

Key Features

Feature Description
Delta transfer Only transfers differences, not entire files
Compression Optional -z flag for network-efficient transfer
Preservation Maintains permissions, ownership, timestamps
Remote sync Built-in SSH support for secure remote sync
Incremental Hard-link based snapshots for backup rotation

Backup Strategies

Simple Backup

rsync -av /home/user/ /backup/daily/

Rotating Snapshots

# Create hardlink-based incremental backup
rsync -av --link-dest=../monday /source/ /backup/tuesday/

# Next day
rsync -av --link-dest=../tuesday /source/ /backup/wednesday/

Remote Backup

# Push to remote
rsync -avz --delete /data/ user@backup-server:/backup/

# Pull from remote
rsync -avz user@server:/data/ /local/backup/

Important Trailing Slash

# Copies the directory itself
rsync -av /source /destination  # โ†’ /destination/source/

# Copies the contents
rsync -av /source/ /destination  # โ†’ /destination/file1, ...

Related Tools

  • scp โ€” Simple secure copy (simpler, no delta)
  • rclone โ€” Cloud storage sync
  • tar โ€” Archive creation for offline transfer

Dependencies

ssh

Related Tools

unisontarrclonescpnetwork-remote-sshnetwork-transfer-scpnetwork-transfer-sftp

References