Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Rsync is a data transfer tool. To use rsync you will be provide it with a source, and a destination. For each file in the source, rsync will first look to see if the file exists in the target. If not, then rsync will transfer a copy of the file to the target. If file does exist on the target, then rsync confirms that the files are the same. If not, then it determines the smallest amount of data that needs to be transferred to make the target file look like the source file. This makes rsync ideal for mirroring sets of files. Because rsync ignores files that are up to date it's also useful for resuming a transfer that might have gotten interrupted. However, this powerful piece of software can easily be used to create a mess, or damage files. If you wish to use rsync you should carefully read through this document to make sure you understand its proper use. It does also require a bit more familiarity with how files are stored, and accessed in UNIX. If you are still not comfortable with this, you should visit our New Users Guide which has some references for learning to work with UNIX. You might also refer to our UNIXary which defines some commonly used terms.

JUST TO SAY IT AGAIN, YOU MUST THINK WHILE/BERFORE USING THIS TOOL, AND MAKE SURE YOU ARE SYNCING THE RIGHT THINGS.

UNIX users (and Mac by use of Terminal.app) can use rsync by typing

...

object meaning
a b sync object (file or directory) a to (file or directory b)
a/ b sync contents of directory a to b
a b/ sync a to directory b
a/ b/ sync directory a/ to b/As before either a or b can be a short name which means it refers to something in your current working directory, or it can

Syncing to a Remote/Host

Until now we've just assumed that we are syncing files in the same directory. However, rsync will also sync files between directories. For example, if you have modified files in your home directory, you might want to make sure the changed files are in your personal directory in your lab folder. In this case you could run,

...

which creates or updates /share/FooLab/bar1234/ProjectFiles/a. You can reverse this off of course. Finally, rsync allows either the source or the target on a remote host. This allows you to sync files to a remote host, using the syntax

...

and read about it. Also, --dry-run, --list-only, and --itemize-changes are good ways to see what rsync is doing, or to test what it might do. Finally, sometimes on remote systems

Rsync as a Backup Tool

This section will provide a mechanism for CCBB users to easily back their Mac or Linux laptops up. First, prep by logging into files.ccbb.utexas.edu using ssh, and then changing to your lab's bulk share. Please do not use home directories for this, as we do not have space to do this. Anybody that we have obligations to backup will also be a member of a lab with a lab share. Within your lab share you should have a personal folder which only you, and your lab head can access. Make a unique for your backup (say LAPTOP). Next on your system run the commands

mkdir ~/bin
mkidr ~/.ccbb-rsync-backup

Go into the directory ~/bin, and use an editor to create file called sync2files which contains the blocks of text between the -begin- and -end- lines below

– begin –

– end –

Once the script is done, run the command

chmod u+x sync2files

Next go into ~/.ccbb-rsync-backup, and create a file called include, and a file called exclude. This can be empty, but over time you may want to adjust the contents of these files. For example, you may notice cache files in your home directory, or other files that you don't want backed up (such as your music collection which is non-work related). Those can be put in the exclude file. Or if you wish to only back up specific items, or need to back up items other than ~, you can add entries to the include file. Rsync