General format
rsync options /path/to/source/folder /path/to/backup/folder
| Option | Used for |
|---|---|
| -a | preserve user permissions, modified times |
| -r | to copy recursively |
| -z | transfers data in compressed format |
| -vhP | verbose, human-readable, show progress |
| -e ssh | transfer over ssh |
| -W | whole file transfer (instead of diff based) |
| Option | Used for |
|---|---|
| –dry-run, -n | does not modify filesystem |
| –delete | removes files (in remote) that does not exist at source |
| –include="" –exclude="" | to specify which files to include/exclude |
| –exclude-from=file | exclude glob patterns specified in a file |
Full system backup (For more info)
sudo rsync -aAXv \
--exclude={"/dev/*","/proc/*","/sys/*","/tmp/*",\
"/run/*","/mnt/*","/media/*","/lost+found"} \
/ /path/to/backup/folder
Backup remote folder using ssh
rsync -ave ssh /path/to/source/folder user@remote:~/backup/folder
Incremental backup
rsync -arvhP --delete /path/to/source/folder /path/to/backup/folder