Difference between revisions of "Rsync"

From David's Wiki
Jump to navigation Jump to search
Line 7: Line 7:
  
 
;Flags
 
;Flags
* <code>-a</code> archive mode (recursive mode, preserves symlinks, permissions, times, group, owner, devices)
+
* <code>-a</code> archive mode (recursive, preserves symlinks, permissions, times, group, owner, devices)
 
* <code>--no-i-r</code> or <code>--no-inc-recursive</code> scans all files at the beginning rather than during the transfer
 
* <code>--no-i-r</code> or <code>--no-inc-recursive</code> scans all files at the beginning rather than during the transfer
 
* <code>--progress</code> shows per-file progress
 
* <code>--progress</code> shows per-file progress

Revision as of 08:47, 28 July 2020

See Archwiki:rsync and rsync(1) - Linux man page

Getting Started

rsync -a <src> <dst> --info=progress2
Flags
  • -a archive mode (recursive, preserves symlinks, permissions, times, group, owner, devices)
  • --no-i-r or --no-inc-recursive scans all files at the beginning rather than during the transfer
  • --progress shows per-file progress
  • --info=progress2 shows overall progress during the transfer

System Backups

  • Create a script and add it to your crontab -e

Basic Backup

#!/bin/bash

TARGET_FOLDER=<your target for backup>
EXCLUSIONS='--exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"}'

sudo rsync -aAXq ${EXCLUSIONS} / "${TARGET_FOLDER}"
Flags
  • -a archive mode
  • -A preserve ACLs (access control lists)
  • -X preserve extended attributes
  • -q quiet

Exclude

Add --exclude to your call.

Notes
  • Exclude typically uses a pattern. If you want to exclude from the root of the transfer, prepend /.
    E.g
    rclone --exclude "/project/node_modules" project /some/other/dir/
  • Add --exclude before --stats and --delete if you want it to work.

You can also use --exclude-from and point to a text file list of exclusions.