Difference between revisions of "Rsync"

From UFRC
Jump to navigation Jump to search
(One intermediate revision by the same user not shown)
Line 1: Line 1:
[[Category:Data Management]]
+
[[Category:Transfer Data]]
 
==Overview==
 
==Overview==
 
Rsync, which stands for "remote sync," is a utility for copying and syncing data between two computer systems. UFRC now provides a URL for users to rsync their data to and from the cluster. The basic syntax of the rsync command is:
 
Rsync, which stands for "remote sync," is a utility for copying and syncing data between two computer systems. UFRC now provides a URL for users to rsync their data to and from the cluster. The basic syntax of the rsync command is:
<source lang="bash" enclose="div">
 
[user@laptop ~]$ rsync options source destination
 
</source>
 
  
 +
[user@laptop ~]$ rsync options source destination
  
 
{| class="wikitable" style="width:50%;"
 
{| class="wikitable" style="width:50%;"
Line 37: Line 35:
  
 
If Jane's username on her computer is the same as her UFRC username, she can run:
 
If Jane's username on her computer is the same as her UFRC username, she can run:
<source lang="bash" enclose="div">
+
[jane@laptop ~]$ rsync -av build_tree_xyz rsync.rc.ufl.edu:~
[jane@laptop ~]$ rsync -av build_tree_xyz rsync.rc.ufl.edu:~
 
</source>
 
 
 
  
 
If Jane's username on her computer is different than her UFRC username, she needs to run:
 
If Jane's username on her computer is different than her UFRC username, she needs to run:
<source lang="bash" enclose="div">
+
[jane@laptop ~]$ rsync -av build_tree_xyz jsmith@rsync.rc.ufl.edu:~
[jane@laptop ~]$ rsync -av build_tree_xyz jsmith@rsync.rc.ufl.edu:~
 
</source>
 
  
 
==Copying files from the cluster==
 
==Copying files from the cluster==
 
{| style="border:1px solid #0021A5; background-color:#f0f8ff; width:50%; padding:5px;"
 
{| style="border:1px solid #0021A5; background-color:#f0f8ff; width:50%; padding:5px;"
| style="padding:10px;" | '''Example''': Jane's job writes some outputs to a directory on scratch '/ufrc/mylab/jsmith/build_tree_xyz_outputs/' and she wants to rsync those outputs to her laptop for further analysis.
+
| style="padding:10px;" | '''Example''': Jane's job writes some outputs to a directory on scratch '/blue/mylab/jsmith/build_tree_xyz_outputs/' and she wants to rsync those outputs to her laptop for further analysis.
 
|}
 
|}
 
  
 
Jane should run:
 
Jane should run:
<source lang="bash" enclose="div">
+
[jane@laptop ~]$ rsync -av jsmith@rsync.rc.ufl.edu:/blue/mylab/jsmith/build_tree_xyz_outputs ~
[jane@laptop ~]$ rsync -av jsmith@rsync.rc.ufl.edu:/ufrc/mylab/jsmith/build_tree_xyz_outputs ~
 
</source>
 
 
 
  
 
==Copying files between directories==
 
==Copying files between directories==
  
 
{| style="border:1px solid #0021A5; background-color:#f0f8ff; width:50%; padding:5px;"
 
{| style="border:1px solid #0021A5; background-color:#f0f8ff; width:50%; padding:5px;"
| style="padding:10px;" | '''Example''': Jane, of the "doe" group wants to copy a directory tree from one /ufrc directory to another.
+
| style="padding:10px;" | '''Example''': Jane, of the "doe" group wants to copy a directory tree from one /blue directory to another.
 
|}
 
|}
  
 
Jane should login to hpg.rc.ufl.edu and then run rsync as follows:
 
Jane should login to hpg.rc.ufl.edu and then run rsync as follows:
<source lang="bash" enclose="div">
+
 
[janedoe@JanesMac]$ ssh jane@hpg.rc.ufl.edu
+
[janedoe@JanesMac]$ ssh jane@hpg.rc.ufl.edu
<Enter password>
+
<Enter password>
[jane@login1 ~]$ rsync -av /ufrc/mygroup/jane/important_data /ufrc/mygroup/share/project/
+
[jane@login1 ~]$ rsync -av /blue/mygroup/jane/important_data /blue/mygroup/share/project/
</source>
 
  
 
Note the absence of a slash in the source directory. If a slash is present at the end of the source directory name then the ''contents'' of the source directory will be copied and not the directory itself.
 
Note the absence of a slash in the source directory. If a slash is present at the end of the source directory name then the ''contents'' of the source directory will be copied and not the directory itself.

Revision as of 21:23, 2 August 2021

Overview

Rsync, which stands for "remote sync," is a utility for copying and syncing data between two computer systems. UFRC now provides a URL for users to rsync their data to and from the cluster. The basic syntax of the rsync command is:

[user@laptop ~]$ rsync options source destination
Some common options used with rsync commands
Option Meaning
-a archive mode; allows copying files recursively and also preserves symbolic links, files permissions, user & group ownerships and timestamps
-v increase verbosity
-r copies data recursively
-z compress file data
-h output numbers in a human-readable format

Copying files to the cluster

Example: Jane has started a new project called 'build_tree_xyz' on her laptop. She wishes to copy this project to the cluster to run some jobs related to the project. Jane runs rsync from her laptop to sync the project into her home directory.


If Jane's username on her computer is the same as her UFRC username, she can run:

[jane@laptop ~]$ rsync -av build_tree_xyz rsync.rc.ufl.edu:~

If Jane's username on her computer is different than her UFRC username, she needs to run:

[jane@laptop ~]$ rsync -av build_tree_xyz jsmith@rsync.rc.ufl.edu:~

Copying files from the cluster

Example: Jane's job writes some outputs to a directory on scratch '/blue/mylab/jsmith/build_tree_xyz_outputs/' and she wants to rsync those outputs to her laptop for further analysis.

Jane should run:

[jane@laptop ~]$ rsync -av jsmith@rsync.rc.ufl.edu:/blue/mylab/jsmith/build_tree_xyz_outputs ~

Copying files between directories

Example: Jane, of the "doe" group wants to copy a directory tree from one /blue directory to another.

Jane should login to hpg.rc.ufl.edu and then run rsync as follows:

[janedoe@JanesMac]$ ssh jane@hpg.rc.ufl.edu
<Enter password>
[jane@login1 ~]$ rsync -av /blue/mygroup/jane/important_data /blue/mygroup/share/project/

Note the absence of a slash in the source directory. If a slash is present at the end of the source directory name then the contents of the source directory will be copied and not the directory itself.

References

There are also plenty of existing tutorials available on the web describing the various rsync options.