From IT Mission Linux Tips, Hacks, Tutorials, Howtos -

Main: Rsync-files-to-remote-host


Simple commands should do the job for u:

rsync -avhe ssh --delete /home/user1/dir/ [email protected]:dir/

If you want to know how fast the transfer is going

rsync --progress -avhe ssh --delete /home/user1/dir/ [email protected]:dir/

use the --dry-run option with your commands to run through the transfer first,

without actually copying or synching files.

Resume scp of a big file

It can resume a failed secure copy ( usefull when you transfer big files like db dumps through vpn ) using rsync.

It requires rsync installed in both hosts.

rsync --partial --progress --rsh=ssh $file_source $user@$host:$destination_file local -> remote


rsync --partial --progress --rsh=ssh $user@$host:$remote_file $destination_file remote -> local

Create a mirror of a local folder, on a remote server

Create a exact mirror of the local folder "/root/files", on remote server 'remote_server' using SSH command (listening on port 22) (all files & folders on destination server/folder will be deleted)

rsync -avPi /root/files user@remote:/root/files


rsync -e "/usr/bin/ssh -p22" -a --progress --stats --delete -l -z -v -r -p 
/root/files/ user@remote_server:/root/files/

Help Rsync

$ rsync -h
rsync  version 2.6.3  protocol version 28
Copyright (C) 1996-2004 by Andrew Tridgell and others
Capabilities: 64-bit files, socketpairs, hard links, symlinks, batchfiles,
              inplace, IPv6, 64-bit system inums, 64-bit internal inums

rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
are welcome to redistribute it under certain conditions.  See the GNU
General Public Licence for details.

rsync is a file transfer program capable of efficient remote update
via a fast differencing algorithm.

Usage: rsync [OPTION]... SRC [SRC]... [USER
  or   rsync [OPTION]... [USER@]HOST:SRC DEST
  or   rsync [OPTION]... SRC [SRC]... DEST
  or   rsync [OPTION]... [USER@]HOST::SRC [DEST]
  or   rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
  or   rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
  or   rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST

SRC on single-colon remote HOST will be expanded by remote shell SRC on server remote HOST may contain shell wildcards or multiple

  sources separated by space as long as they have same top-level


 -v, --verbose               increase verbosity
 -q, --quiet                 decrease verbosity
 -c, --checksum              always checksum
 -a, --archive               archive mode, equivalent to -rlptgoD
 -r, --recursive             recurse into directories
 -R, --relative              use relative path names
     --no-relative           turn off --relative
     --no-implied-dirs       don't send implied dirs with -R
 -b, --backup                make backups (see --suffix & --backup-dir)
     --backup-dir            make backups into this directory
     --suffix=SUFFIX         backup suffix (default ~ w/o --backup-dir)
 -u, --update                update only (don't overwrite newer files)
     --inplace               update destination files inplace (SEE MAN PAGE)
 -K, --keep-dirlinks         treat symlinked dir on receiver as dir
 -l, --links                 copy symlinks as symlinks
 -L, --copy-links            copy the referent of all symlinks
     --copy-unsafe-links     copy the referent of "unsafe" symlinks
     --safe-links            ignore "unsafe" symlinks
 -H, --hard-links            preserve hard links
 -p, --perms                 preserve permissions
 -o, --owner                 preserve owner (root only)
 -g, --group                 preserve group
 -D, --devices               preserve devices (root only)
 -t, --times                 preserve times
 -S, --sparse                handle sparse files efficiently
 -n, --dry-run               show what would have been transferred
 -W, --whole-file            copy whole files, no incremental checks
     --no-whole-file         turn off --whole-file
 -x, --one-file-system       don't cross filesystem boundaries
 -B, --block-size=SIZE       force a fixed checksum block-size
 -e, --rsh=COMMAND           specify the remote shell
     --rsync-path=PATH       specify path to rsync on the remote machine
     --existing              only update files that already exist
     --ignore-existing       ignore files that already exist on receiving side
     --delete                delete files that don't exist on the sending side
     --delete-excluded       also delete excluded files on the receiving side
     --delete-after          receiver deletes after transferring, not before
     --ignore-errors         delete even if there are I/O errors
     --max-delete=NUM        don't delete more than NUM files
     --partial               keep partially transferred files
     --partial-dir=DIR       put a partially transferred file into DIR
     --force                 force deletion of directories even if not empty
     --numeric-ids           don't map uid/gid values by user/group name
     --timeout=TIME          set I/O timeout in seconds
 -I, --ignore-times          turn off mod time & file size quick check
     --size-only             ignore mod time for quick check (use size)
     --modify-window=NUM     compare mod times with reduced accuracy
 -T, --temp-dir=DIR          create temporary files in directory DIR
     --compare-dest=DIR      also compare destination files relative to DIR
     --link-dest=DIR         create hardlinks to DIR for unchanged files
 -P                          equivalent to --partial --progress
 -z, --compress              compress file data
 -C, --cvs-exclude           auto ignore files in the same way CVS does
     --exclude=PATTERN       exclude files matching PATTERN
     --exclude-from=FILE     exclude patterns listed in FILE
     --include=PATTERN       don't exclude files matching PATTERN
     --include-from=FILE     don't exclude patterns listed in FILE
     --files-from=FILE       read FILE for list of source-file names
 -0, --from0                 all *-from file lists are delimited by nulls
     --version               print version number
     --daemon                run as an rsync daemon
     --no-detach             do not detach from the parent
     --address=ADDRESS       bind to the specified address
     --config=FILE           specify alternate rsyncd.conf file
     --port=PORT             specify alternate rsyncd port number
     --blocking-io           use blocking I/O for the remote shell
     --no-blocking-io        turn off --blocking-io
     --stats                 give some file transfer stats
     --progress              show progress during transfer
     --log-format=FORMAT     log file transfers using specified format
     --password-file=FILE    get password from FILE
     --bwlimit=KBPS          limit I/O bandwidth, KBytes per second
     --write-batch=FILE      write a batch to FILE
     --read-batch=FILE       read a batch from FILE
     --checksum-seed=NUM     set block/file checksum seed
 -4, --ipv4                  prefer IPv4
 -6, --ipv6                  prefer IPv6
 -h, --help                  show this help screen

Please see the rsync(1) and rsyncd.conf(5) man pages for full documentation

See for updates, bug reports, and answers

Retrieved from
Page last modified on December 14, 2012, at 03:10 PM