I think you could start with a little script for bash (the most common command line interpreter). So it would have two lines
rsync (rest of rsync command here)
Open a terminal window and type
to see the rsync options and many examples of use or google for examples. rsync is a very complete, robust program. It can check to see if a file has changed, and only transfer the changed files. The exact command you need to use can vary greatly with your individual setup and with what filesystem is on the USB stick.
Assuming you have ext2/3/4 on your hard disks, and FAT32 on the USB, and that all your home directories are in single partitions, something like this will get you close:
$rsync -rtivv --modify-widow=2 --delete --exclude=’.*’ /home/(username)/ /media/(username)/(USBLabel)
Options you should study would be --dry-run (or -n) --delete --exclude-from=FILE and -c. Also understand exactly what the options I’ve included are doing before you use them, particularly --delete. If the USB is, indeed, FAT32, there is no need to use -a (or -l -p -g -o -D) because FAT32 doesn’t have file permissions, owners, groups, or links. (Some of the preceding is not completely true, but it is for your purposes).
And that brings up another potential catch. When you transfer files from one machine to another using a FAT32 USB, you will lose all those file attributes. Restoring them on another ext2/3/4 file system will recreate the attributes from the new machine’s user umask.
If you are ONLY using the USB on Linux machines, it would be better to reformat it as ext2/3/4. Then you can use rsync with the options -av --delete, and preserve all the information. You should be sure that your owner and group names are the same on all concerned machines, and that they translate to the same numerical userid and groupid. If you are the only (and first) user on each machine, then they will match up. You can check the numerical ids in the /etc/passwd and /etc/group files.
Also, if any of your machines are on the same network, you can transfer directly from one to the other with rsync, and not go through the USB stick.
I would suggest trying out rsync options at the command line first to get to know what you are doing. When you are happy with the results, creating a script is as simple as putting the #!/bin/bash line and the rsync line in your favorite text editor, saving the file, and making it executable. To use it, open a command line, and type: