Rsync

Backup

To put files to exclude in a separate file, use the --exclude-from flag and specify a file with a list of files / folders:

Exclusion list:

/.mozilla/firefox/*/lock
/.mozilla/firefox/Profiles/*/lock
/.gvfs
/.pulse

Rsync script:

#!/bin/bash
SOURCE=$HOME
DESTINATION=/path/to/destination/
LOGFILE=/path/to/logfile
rsync -tvrL --log-file $LOGFILE --exclude-from '/path/to/exclusion/list' $SOURCE $DESTINATION

Migrating a rootfs

Start a live session that has access to the source drive and the target drive. Mount those drives and migrate the data using the below rsync command:

rsync --archive --hard-links --executability --acls --xattrs --sparse --numeric-ids --info=progress2 src dst

Then chroot into the dst system and reinstall the boot loader. Adjust hostname etc. as needed.