Skip to content
This repository has been archived by the owner on Apr 20, 2019. It is now read-only.

User Guide

JasonAlt edited this page Jun 29, 2012 · 1 revision

Getting Started

UberFTP is typically dynamically linked. This means that, unless the system administrator has taken the necessary precautions, you have to configure your environment so the client can locate all of its needed libraries. If you run uberftp and get this message, then you need to configure your environment:

uberftp: error while loading shared libraries: libglobus_gssapi_gsi_gcc64pthr.so.0: cannot open shared object file: No such file or directory

To fix this, set GLOBUS_LOCATION, then source $GLOBUS_LOCATION/etc/globus-user-env.sh:

 > export GLOBUS_LOCATION=/usr/local/globus 
 > . $GLOBUS_LOCATION/etc/globus-user-env.sh 

Commandline Options

 Usage: uberftp [options] [host options] [host]
        uberftp [options] [host options]  host cmds
        uberftp [options] <srcurl> <dsturl>
        uberftp [options] -f <urlfile>
        uberftp [options] -cmd <url>

Note: Only the first usage creates an interactive session.

    host      Connect to host.
    cmds      This specifies the FTP commands to run once the control
              connection is establish. This list must be enclosed
              in quotes. Multiple commands are semicolon delimited.
              uberftp will execute these commands and then exit.
    srcurl and dsturl
              These denote the source URL and destination URL
              respectively. The accepted forms are:
                  gsiftp://host[:port]/<path>
                  ftp://[user[:pass]@]host[:port]/<path>
                  file:<path>
    urlfile
              This file is a list of <srcurl> <dsturl> pairs, one pair
              per line. Blanks lines and lines beginning with '#' are
              ignored.
    -cmd 
              This will execute the given command using the url as the
              target. The supported commands and their syntax are listed
              below.

The "host options" are:

    -P port   Connect to port (default 2811 for GSI)
    -u user   Specify the user to authenticate as.
    -p pass | X
              Use password 'pass' when authenticating with 'host'.
              If 'pass' equals 'X', read the password from STDIN with
              character echoing turned off.

The "options" are:

    -active       Use ACTIVE mode for data transfers.
    -ascii        Use ASCII mode for data transfers.
    -binary       Use BINARY mode for data transfers.
    -blksize n    Set the internal buffer size to n.
    -cksum [on|off]
                  Enable/Disable CRC checks after file transfers.
    -debug   n    Set the debug level to n.
    -family  name Set the remote storage family to name.
    -glob [on|off]
                  Enable/Disable filename globbing.
    -hash         Enable hashing.
    -keepalive n  Send control channel keepalive messages every n
                  seconds during data transfers.
    -mode  [E|S]  Switch the transfer mode to extend block (E) or
                  streams mode(S).
    -parallel n   Use n parallel data channels during extended block
                  transfers.
    -passive      Use PASSIVE mode for data transfers.
    -pbsz  n      Set the data protection buffer size to n bytes.
    -prot [C|S|E|P]
                  Set the data protection level to clear (C),
                  safe (S), confidential (E) or private (P).
    -retry n      Retry commands that fail with transient errors n times.
    -resume path  Retry the recursive transfer starting at path.
    -tcpbuf n     Set the TCP read/write buffers to n bytes.
    -wait         This will cause the client to wait for remote files to
                  stage before attempting to transfer them.
    -v            Print UberFTP version information and exit. Deprecated.
    -version      Print UberFTP version information and exit.
    -versions     Print version information about all used globus modules
                  and exit.

The supported "-cmds" are:

    -cat <url>
                  Print to stdout the contents of the remote file.
    -chgrp [-r] group <url>
                  Set the group ownership on the remote object(s).
    -chmod [-r] perms <url>
                  Set the permissions on the remote object(s).
    -dir [-r] <url>
                  List the contents of the remote object.
    -ls [-r] <url>
                  List the contents of the remote object.
    -mkdir <url>
                  Create the remote directory.
    -rename <url> <path>
                  Rename the remote object to the given .
    -rm [-r] <url>
                  Remove the remote object(s).
    -rmdir <url>
                  Remove the remote directory.
    -size <url>
                  Return the size of the remote object.
    -stage -r seconds <url>
                  Attempt to stage the remote object(s) over the time
                  period given in seconds.

Note: uberftp uses passive STREAMS mode by default.

Interactive Commands

This listing is generated by typing 'help' at the command prompt.

 !               ?               active          ascii           binary
 blksize         bugs            bye             cat             cd
 cdup            chgrp           chmod           cksum           close
 dcau            debug           dir             family          get
 glob            hash            help            keepalive       lcat
 lcd             lcdup           lchgrp          lchmod          lclose
 ldir            lls             lmkdir          lopen           lpwd
 lquote          lrename         lrm             lrmdir          ls
 lsize           lstage          mget            mkdir           mode
 mput            open            order           parallel        passive
 pbsz            pget            pput            prot            put
 pwd             quit            quote           rename          resume
 retry           rm              rmdir           runique         size
 stage           sunique         tcpbuf          versions        wait

tcpbuf was added in version 1.8.

Third-Party Transfers

Third-party transfers are performed similarly to other file transfers. Normally, you use 'open' to select the remote host then perform 'put' and 'get' between the local client machine and the remote FTP service. In order to perform a third-party transfer, you select a new 'local' service by using 'lopen'. Now all 'l*' commands perform actions on the new 'local' service as if you were logged into that machine. 'put' will perform a third-party transfer moving the file from the 'local' service to the 'remote' service and vice versa for 'get'. You can use 'close' and 'lclose' when you are finished with those connections.

Examples

Start a session using GSI authentication:

 [jalt@cvs bin]$ grid-proxy-init
 Your identity: /C=US/O=National Computational Science Alliance/CN=Jason Alt
 Enter GRID pass phrase for this identity:
 Creating proxy .................................................... Done
 Your proxy is valid until: Thu Sep 25 22:14:10 2003
 [jalt@cvs bin]$ ./uberftp mss.ncsa.uiuc.edu
 220-
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 *******************************************************************************
 
                       NCSA's Mass Storage System
                 Running UniTree Central File Manager 2.3
                     for IRIX on a SGI Origin 2000

 Dec 29, 2000:  UniTree has been upgraded to version 2.3. There are a few 
                new enhancements to the ftp services. Please see the
                consulting team's web pages for updated information:

                http://www.ncsa.uiuc.edu/SCD/Hardware/UniTree/Doc/

 *******************************************************************************
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 Aug 18 2003   There may be delays accessing archived (AR) files from Mass 
               Storage, due to tape drive upgrades. Please let the Helpdesk
               or Consult know if delays seem excessive.

 Sept 23 2003  The certificate for MSS has been renewed using NCSA's CA
               certificate. To continue using GSI authentication to MSS,
               please get a copy of NCSA's CA certificate
               (4a6cd8b1.0 and 4a6cd8b1.signing_policy) from
               ftp://ftp.ncsa.uiuc.edu/aces/ncsa-ca/certificates and place them
               in /etc/grid-security/certificates on your client machine.

 UNIX Archive FTP server (DiskXtender Version 2.4) active. Checking DiskXtender.conf

 220 UNIX Archive FTP server ready.
 230 User jalt logged in.
 UberFTP>

Perform a third-party transfer with 5 data connections:

 [jalt@cvs bin]$ ./uberftp
 UberFTP> open mss.ncsa.uiuc.edu -a mss
 UNIX Archive FTP server (DiskXtender Version 2.4) active. Checking DiskXtender.conf

 220 UNIX Archive FTP server ready.
 230 User jalt logged in.
 UberFTP> lopen tg-tts1.ncsa.teragrid.org
 220 tg-tts1.ncsa.teragrid.org GridFTP Server 1.5 GSSAPI type Globus/GSI wu-2.6.2 (gcc32dbg, 1032298778-28) ready.
 230 User jalt logged in.  Access restrictions apply.
 UberFTP> ls
 535 DCAU not supported for this authentication mechanism
 150 Opening  BINARY connection(s) for /usr/unitree/prod/bin/ddir.
 drwx------      2 jalt      ac       DK  common      1024 Sep 18 12:54 .trash
 -rw-------      1 jalt      ac       DK  common         0 Sep 18 13:50 10
 -rw-------      1 jalt      ac       AR  common 10000000001 Sep 11 13:42 10GigFile.1
 226 Transfer complete.
 UberFTP> lls
 150 Opening BINARY mode data connection.
 226 Transfer complete.
 UberFTP> get 10
 dst> 150 Opening BINARY mode data connection.
 src> 150 Opening  BINARY connection(s) for 10.
 dst> 226 Transfer complete.
 src> 226 Transfer complete.
 UberFTP>