Fast, versatile file synchronization and transfer tool with delta encoding, compression, and remote sync over SSH.
rsync {verbose} {info} {debug} {stderr} {quiet} ๐ verbose ๐ info ๐ debug ๐ stderr ๐ quiet rsync {verbose} {info} {debug} {stderr} {quiet} Sandbox: execFile · Timeout: 600s
filesystem.sync.local filesystem.sync.remote filesystem.sync.incremental filesystem.sync.archive filesystem.transfer.delta filesystem.backup | 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 |
| Type | Description | MIME | Schema | Trust |
|---|---|---|---|---|
filesystem.directory.synced | Destination directory after rsync operation | - | - | verified |
system.backup.archive | Backup archive created via rsync | - | - | verified |
Inputs
filesystem.directory.source Source directory or file path
filesystem.directory.destination Destination directory path
Outputs
filesystem.directory.synced Synchronized destination directory
filesystem_write Produces
filesystem.directory.syncedConsumes
filesystem.directory.sourcefilesystem.directory.destination| Resource | Value |
|---|---|
| CPU | low |
| Memory | 32 MB |
| Network | medium |
| Disk I/O | high |
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/ Rsync is a fast, versatile file synchronization tool that transfers only the differences between source and destination (delta encoding), making repeated transfers extremely efficient.
| 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 |
rsync -av /home/user/ /backup/daily/
# Create hardlink-based incremental backup
rsync -av --link-dest=../monday /source/ /backup/tuesday/
# Next day
rsync -av --link-dest=../tuesday /source/ /backup/wednesday/
# Push to remote
rsync -avz --delete /data/ user@backup-server:/backup/
# Pull from remote
rsync -avz user@server:/data/ /local/backup/
# Copies the directory itself
rsync -av /source /destination # โ /destination/source/
# Copies the contents
rsync -av /source/ /destination # โ /destination/file1, ...