I struggled for years to manage simple home data backups effectively but a nice Linux tool (rsync) exists to make it very manageable, here are some use cases I use frequently to make it a breeze:
A straight copy of one drive to another:
- n – this will show the output without doing anything (dry run), remove this to run the backup.
- r – this means recursive, basically it will catch all files.
- u – this skips files that are newer on ‘drive2’, I use this to ensure files are a true copy in case of a mix-up.
- v – makes the output verbose, gives lots of information on progress.
rsync -nruv /media/drive1/ /media/drive2
As of recent I started using the –checksum argument due to not following my own rules and doing a backup that overwrote modification time of all files, this argument looks at the file checksum (unique identifier) as opposed to the modification time to do a backup:
rsync -nruv --checksum /media/drive1/ /media/drive2
This was supposed to just get you on your feet with backups, a lot more options are available, read on here perhaps:
By modifying a tutorial on the opensource blog I was really able to streamline and speed up the backups, save the below as a shell script, it makes light work of multiple Terabytes of data:
DIRS="directory_to_copy" SRC="/media/drive1" DEST="/media/drive2" for DIR in $DIRS; do cd "$SRC"/$DIRS rsync -cdlptgov --delete . /"$DEST"/$DIR find . -maxdepth 1 -type d -not -name "." -exec rsync -crlptgov --delete {} /"$DEST"/$DIR \; done
Resources I used:
https://ss64.com/bash/rsync.html
https://opensource.com/article/19/5/advanced-rsync
https://www.computerhope.com/unix/rsync.htm
That’s it!