Navigate This Site
Installation Guide
User Guide
Document Sections
Getting Started
Commandline Options
Interactive Commands
Third-Party Transfers

This guide is for versions 2.0 and newer.

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: cannot open shared object file: No such file or directory

To fix this, set GLOBUS_LOCATION, then source $GLOBUS_LOCATION/etc/

> export GLOBUS_LOCATION=/usr/local/globus

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:
                  This file is a list of <srcurl> <dsturl> pairs, one pair
                  per line. Blanks lines and lines beginning with '#' are
                  This will execute the given command using the url as the
                  target. The supported commands and their syntax are listed

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
        -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.

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

                      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:



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
     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.

Perform a third-party transfer with 5 data connections:
[jalt@cvs bin]$ ./uberftp
UberFTP> open -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
220 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.