rsync
Appearance
See Archwiki:rsync and rsync(1) - Linux man page
Getting Started
rsync -ah <src> <dst> --info=progress2
- Flags
-aarchive mode (recursive, preserves symlinks, permissions, times, group, owner, devices)- Excludes hard links (
-H), ACLs (-A), and extended attributes (-X)
- Excludes hard links (
--no-i-ror--no-inc-recursivescans all files at the beginning rather than during the transfer--progressshows per-file progress--info=progress2shows 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 -aAXh ${EXCLUSIONS} / "${TARGET_FOLDER}" --info=progress2
- Flags
-aarchive mode-Apreserve ACLs (access control lists)-Xpreserve extended attributes-qquiet
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/
- E.g
- Add
--excludebefore--statsand--deleteif you want it to work.
You can also use --exclude-from and point to a text file list of exclusions.
Delete
StackOverflow Differences between rsync delete
Be very careful with deleting. By default rsync only deletes files on the target which have the same name as files on the source.
Below are the relevent flags for deleting files on the target and the source.
The following two options deletes extraneous files on the target.
--deleteDelete files on the target directory which are not in the source.--delete-excludedDelete files on the target directory which are excluded in the transfer.
The following options concern replacing files on the target with the same name.
--delete-beforeDeletes files on the target before new replacement is copied over. (default)--delete-duringDeletes files on the target as replacement files with the same name are being copied over.--delAlias for--delete-during--delete-delayMarks files for deletion during transfer. Waits until the transfer is complete to delete files.--delete-afterChecks for files and deletes files after transfer after the transfer.
The following option deletes files from the source directory.
--remove-source-filesDeletes files which have been synced.