Linux command: rsync

From RHS Wiki
Revision as of 19:50, 11 February 2019 by Rafahsolis (talk | contribs)
Jump to navigation Jump to search

Create local backups

rsync -avzXAS --delete /Origen/ /Destino/

The code above will synchronize the contents of Directory1 to Directory2, and leave no differences between the two.
If rsync finds that Directory2 has a file that Directory1 does not, it will delete it.
If rsync finds a file that has been changed, created, or deleted in Directory1, it will reflect those same changes to Directory2.


  • -a – The archive option = -rlptgoD
    • -r – (recursive into directories)
    • -l – copy symlinks as symlinks
    • -p – preserve permissions
    • -t – preserve modification times
    • -g – preserve group
    • -o – preserve owner
    • -D – preserve device files and special files
  • -v – increase verbosity
  • -z – compress file data during the transfer
  • -X – preserve extended attributes
  • -A – preserve ACLs (implies -p option)
  • -S – handle sparse files efficiently
  • --delete – if the file is deleted from the source directory, delete it from the target directory

From your local machine

rsync -chavzP --stats user@remote.host:/path/to/copy /path/to/local/storage
  • -c, --checksum skip based on checksum, not mod-time & size
  • -h, --human-readable output numbers in a human-readable format

From your local machine with a non standard ssh port

rsync -avz -e "ssh -p $portNumber" user@remote.host:/path/to/copy /local/path

Or from the remote host

rsync -chavzP --stats /path/to/copy user@host.remoted.from:/path/to/local/storage

Remote backups

rsync -av –delete -e ssh /Origen/ user@192.168.11.21:/Destino/

with password and port settings

rsync -av –delete -e 'ssh -p 12345' /Origen/ user@192.168.235.137:/Destino/

Changing permissions and ownership

pgrep -f "rsync -avz --chown=turing:www-data --chmod=Du=rwx,Dgo=rx,Fu=rw,Fog=r --log-file=${LOG_FILE}" > /dev/null || rsync -avz --chown=tur$│

Remove source files after succesfull transfer

rsync --remove-source-files -azv /path/to/Download/*.avi laptop:~/Download

Follow symlyncs (-L)

rsync -L /path/to/Download/*.avi ~/Download

Exclude

rsync -avz --exclude 'dir1' source/ destination/
rsync -avz --exclude 'dir*' source/ destination/