• Introduction
  • Support
  • Glossary
  • License
  • Acknowledgement
  • Git Version Control
    • Git Basics
    • Git and Atom: GitLab
    • Git and Atom: GitHub
    • Git in the Command Line
    • Git Scenarios
  • Learning Linux
    • Learning Linux Commands
    • Essential Commands
      • Script: Backup
      • Script: Seconds
    • Managing Files
      • Script: Create Files
    • File Permissions
    • Working with Processes
    • Services
    • System Configuration
    • Environment Customization
    • Communication Protocols
    • Task Manager (crontab, at)
    • Bash Scripting
    • Command Line Shortcuts
  • Using the HPC
    • Overview
      • Hardware
      • Storage
      • Software
    • Prerequisites
    • Request an Allocation
    • Access your Allocation
    • Execute a Job
      • Working with C++
      • Working with Fortran
      • Working with Python
      • Working with Makefiles
      • More Job Details
    • Managing Jobs
    • Modules
      • CVMFS Modules
    • Compilers
    • Workflows
      • Crystal Workflow
  • Xsede Resources
    • IU/TACC Atmosphere on Jetstream
    • Using Jetstream Virtual Machines
  • Data Transfer and Storage
    • Moving Data
      • Graphical Client SFTP
    • Globus Data Transfer Tool
      • Globus Endpoints
      • Globus Transfers & More
      • Globus Command Line Interface
  • Tools
    • Docker Containers
    • Singularity Containers
Powered by GitBook
On this page
  • Installing the Required Tools
  • Globus CLI Basics
  • Related Tutorials
  1. Data Transfer and Storage
  2. Globus Data Transfer Tool

Globus Command Line Interface

PreviousGlobus Transfers & MoreNextDocker Containers

Last updated 6 years ago

If you wish to utilize the Globus transfer tools from the command line, you can download the Globus Command Line Interface (CLI). It is available as a Python package.

Installing the Required Tools

Since the tool is a Python package, you will need Python installed, as well as the pip installer.

  • Ubuntu:

    sudo apt-get install python   
    sudo apt-get install python-pip
    export PATH="~/.local/bin:$PATH"
    echo 'export PATH="~/.local/bin:$PATH"' >> "$HOME/.bashrc"
  • CentOS:

    sudo yum install python   
    sudo yum install python-pip
    export PATH="~/.local/bin:$PATH"
    echo 'export PATH="~/.local/bin:$PATH"' >> "$HOME/.bashrc"
  • macOS:

    sudo easy_install python   
    sudo easy_install pip
    export PATH="~/.local/bin:$PATH"
    echo 'export PATH="~/.local/bin:$PATH"' >> "$HOME/.bashrc"

    Some versions of Python will not be installed in ~/.local. If you have trouble getting globus commands to execute, try the following commands to change the path:

    GLOBUS_CLI_INSTALL_DIR="$(python -c 'import site; print(site.USER_BASE)')/bin"   
    echo "GLOBUS_CLI_INSTALL_DIR=$GLOBUS_CLI_INSTALL_DIR"
    export PATH="$GLOBUS_CLI_INSTALL_DIR:$PATH"   
    echo 'export PATH="'"$GLOBUS_CLI_INSTALL_DIR"':$PATH"' >> "$HOME/.bashrc"
  • Windows:

    • The Windows package manager "Chocolatey" is recommended for installation. See for Chocolatey installation instructions.

    • To install Python and pip, see .

  • All Operating Systems: To install the Globus CLI, use the following command: pip install --upgrade --user globus-cli.

To start, you will need to log in to Globus: globus login. Follow the instructions to get logged in. A browser window may appear.

To make sure that your login was successful, type globus get-identities 'go@globusid.org'. A successful output will look something like this: c698d42e-d274-11e5-bf75-1fc5bf53bb56.

Globus CLI Basics

  • Endpoint Search

      $ globus endpoint search 'CCLA HPC'
      ID                                   | Owner                 | Display Name  
      ------------------------------------ | --------------------- | --------------
      57230a10-7ba2-77e7-8c3b-22555b9923ef | cclahpc@globusid.org     | CCLAHPC
  • Endpoint Management

    • Use variables for endpoint IDs: Endpoint IDs are cumbersome. You cannot rename them, but you can store them as variables. For example:

        epCCLAHPC=57230a10-7ba2-77e7-8c3b-22555b9923ef

      Now you can use the variable to display information and manage files (with truncated output):

        $ globus endpoint show $epCCLA-HPC
        Display Name:              CCLA-HPC
        ID:                        57230a10-7ba2-77e7-8c3b-225550b9923ef
        Owner:                     ccla@globusid.org
        Activated:                 True
        Shareable:                 True
        Department:                CCLA
        Organization:              Doane Univ
        Department:                CCLA
        Visibility:                True
        Default Directory:         /~/
        Force Encryption:          False
        Managed Endpoint:          True
    • Make a directory:

        globus mkdir $epCCLAHPC:~/example_dir
    • List the contents of a directory:

        $ globus ls $epCCLAHPC:~/
        example_dir/
        ccla-user-guide.pdf
        hello-world.c
        hello-world.pbs
    • File transfer between endpoints:

      • First, search for a second endpoint. Then set that endpoint as a Bash variable.

          $ globus endpoint search 'Globus Tutorial Endpoint' \
                --filter-owner-id 'c699d42e-d274-11e5-bf75-1fc5bf53bb24'
            Owner           | ID                                   | Display Name
            --------------- | ------------------------------------ | ---------------------------
            go@globusid.org | ddb59aef-6d04-11e5-ba46-22000b92c6ec | Globus Tutorial Endpoint 1
            go@globusid.org | ddb59af0-6d04-11e5-ba46-22000b92c6ec | Globus Tutorial Endpoint 2
            go@globusid.org | cf9bcaa5-6d04-11e5-ba46-22000b92c6ec | Globus S3 Tutorial Endpoint
          $ epGLOBUS1=ddb59aef-6d04-11e5-ba46-22000b92c6ec
      • Make a single file transfer from epCCLAHPC to epGLOBUS1.

          globus transfer $epCCLAHPC:/ccla-user-guide.pdf $epGLOBUS:~/ccla-user-guide.pdf \
          --label "user-guide"
      • Make a batch transfer.

          $ globus transfer $epCCLAHPC:/example_dir/ $epGLOBUS:~/ \
          --batch --label "CCLA Batch" < in.txt

Related Tutorials

Optional: if you wish to use the Globus CLI from within a python virtual environment, see . Otherwise, you may continue using this guide.

here
here
instructions here
Globus Endpoints
Graphical SFTP