Man Linux: Main Page and Category List

NAME

       wput - A wget-like ftp-uploader

SYNOPSIS

       wput [option]... [file]... [URL]...

DESCRIPTION

       Wput is a free utility that is able to upload files to a ftp-server.

       Wput  is non-interactive and background-capable. It can upload files or
       whole directories and is meant to be a robust client even for  unstable
       connections  and  will  therefore  retry  to  upload  a  file,  if  the
       connection broke.

       Wput supports resuming, so it automatically  continues  uploading  from
       the  point where the previous upload stopped, meaning that you can kill
       Wput anytime and it will (if the remote ftp-server supports this, being
       most likely the case) finish the partial uploaded file.

       Wput supports connections through proxies, allowing you to use it in an
       environment that can access the internet only via a proxy or to provide
       anonymity by hiding your ip-address to the server.  For SOCKSv5-proxies
       Wput supports also listening mode, allowing you to  use  port-mode  ftp
       through  a  proxy  (useful  if the remote ftp is behind a firewall or a
       gateway).

       Wput supports timestamping, so it  will  (in  the  ideal  case  and  if
       timestamping  is  enabled)  only  upload files, that are newer than the
       remote-file.

       The upload-rate of Wput can be restricted, so that Wput won’t  eat  all
       available bandwidth.

URL-Input-Handling

       URLs are recognized by the ftp://-prefix

       Wput  first  reads the URLs from command-line, and associates the first
       file with the first URL, the second file with the second URL  etc.   It
       then  transmits  the  file/URL  combinations that are already complete.
       Afterwards, Wput uses the --input-file (if  any)  and  reads  the  URLs
       using  the  same  sheme  as  above.  In situations where more URLs than
       files are specified, Wput tries to guess the local  filename  from  the
       URL.   In  case there are more files that URLs remaining, Wput uses the
       last known URL for each of the files.

       So you can specify e.g. one URL and read all filenames from a file.  Or
       use   wput   *.txt   ftp://host,  to  transfer  all  *.txt-files.   See
       doc/USAGE.examples for further examples.

       To be on the safe side, it is recommended to supply  the  files  before
       the URLs.

Guessing Local File

       If  Wput  has  an  URL  without a corresponding filename, Wput tries to
       guess    the    local    file’s    location.    e.g.     using     wput
       ftp://host/directory/path/file,     Wput     will    look    out    for
       /directory/path/file.    If    not    found,     Wput     looks     for
       ./directory/path/file, ./path/file and ./file.

OPTIONS

       -V
       --version
           Display the version of wput.

       -h
       --help
           Print  a  help  screen, with a short description of wput’s command-
           line options.

       -b
       --background
           Go to background immediately after startup.  If no output  file  is
           given, wput will redirect its output to "./wputlog"

       -o logfile
       --output-file=logfile
           Log all messages to logfile.

       -a logfile
       --append-output=logfile
           Append all logged messages to logfile.

       -q
       --quiet
           Turn off Wput’s output.

       -v
       --verbose
           Turn on verbose output. This gives some more information about what
           Wput does. If you specify this flag twice, you get debug output.

       -nv
       --less-verbose
           Be less verbose. That means reducing Wput’s output  to  a  minimun.
           Specifiing this flag more often is equal to the --quiet flag.  Some
           people also like combining  the  -v  and  -nv  flags,  being  quite
           senseless.

       -i file
       --input-file=file
           Reads  URLs  and  filenames  from  file.  If  there are URLs on the
           command-line too, these will be retrieved first, unless sorting  is
           enabled.   See  also the URL-Input-Handling section.  If file is -,
           the URLs will be read from stdin.  If you want to pipe the contents
           of  the  file  that shall be uploaded to stdin, this cannot be done
           (yet). But you can use the --input-pipe flag and read the  contents
           a)  from  a  named pipe -I "cat named.pipe; echo > /dev/null" or b)
           directly  from  the  command,   that   outputs   the   data.   (See
           --input-pipe)  Do  not do things like find | wput ftp://host/ -i -!
           Wput would upload all files from the current directory  (since  the
           first  output  of  find will be ’.’) and afterwards each file again
           (since find postes its name to Wput.  And  further  problematic  is
           that  Wput  will  upload  each  directory that is given by find and
           since find itself recurses all  directories,  the  files  would  be
           uploaded   three   times   (or   even   more   often   for  further
           subdirectories).  Use wput ftp://host/ to  upload  everything  from
           the local directory.  Or use find ! -type d | wput ftp://host/ -i -
           to tell find, not to output directories.

       -s
       --sort
           If sorting is enabled Wput first reads all  URLs  from  any  input-
           devices available and will sort them before transmitting each file.
           The  sorting  order  is:  ip/hostname,  port,  username,  password,
           directory,  filename.  Sorting requires a bit more memory since all
           data needs to be hold there.

       --basename=path
           This option causes Wput to snip path from all input-files when they
           are connected to the URL. wput /usr/share/doc.tgz ftp://host/ would
           create ftp://host//usr/share/doc.tgz, whereas specifing /usr/share/
           as basename will result in ftp://host/doc.tgz being created.

       -I command
       --input-pipe=command
           If  no  file/directory can be "guessed" (see "Guessing Local File")
           from the URL, the output of command is taken as file-input. command
           is invoked as follows:

               command  ftp  "username"  "ip/hostname" port "remote_directory"
       "remote_filename"

           The hostname is only supplied if the ip cannot be resolved.  If you
           do not want these parameters to confuse the programm from which you
           read the contents,  use  something  like  ’-I  "cat  file;  echo  >
           /dev/null"’  so  that  these  parameters  are passed to echo and to
           /dev/null afterwards.  Since the  progressbar  is  not  capable  of
           handling unknown filesizes, the filesize is set to 1 GiB. Therefore
           the ETA shows a wrong value.

       -R
       --remove-source-files
           Unlinks/deletes files that have been successfully transmitted.

       --bind-address=ADDRESS
           When making client TCP/IP connections, bind()  to  ADDRESS  on  the
           local  machine.   ADDRESS  may  be  specified  as  a hostname or IP
           address.  This option can be useful if your  machine  is  bound  to
           multiple IPs.

       -t number
       --tries=number
           Set  number of retries to number. Specify -1 for infinite retrying,
           which is default, too.

       -nc
       --dont-continue
           If this flag is specified, resuming will  be  turned  off,  meaning
           that  a  remote  file  being  smaller  than  the  local one will be
           overwritten. To skip this file, you have to enable --skip-existing.
           See also doc/USAGE.resumehandling

       -u
       --reupload
           If  this  flag  is specified, a remote file having the same size as
           the local one is to be uploaded. Skipping is default.

       --skip-larger
           If this flag is specified, a remote  file  being  larger  than  the
           local one will be skipped. Default is reuploading it.

       --skip-existing
           If  this flag is specified, the upload of a file will be skipped if
           the remote file already exists.

       -N
       --timestamping
           If timestamping is enabled, Wput will retrieve a directory list and
           parse  it  to  determine the remote file-date. If the local file is
           newer than the remote one (there is a default allowed  timevariance
           of  5  seconds,  which  can  be  adjusted in the wputrc-file) it is
           uploaded, otherwise skipped.  The local date  is  dermined  by  the
           mtime  (time  of  last  modification), using the current time-zone.
           This should be equal to the output of ls -l.  Since you usually  do
           not want to resume existing files, you should employ the --reupload
           --dont-continue flags as well.

       -l RATE
       --limit-rate=RATE
           If you don’t want Wput to eat up all available  bandwidth,  specify
           this  flag.   RATE  is a numeric value. The units ’K’ (for KiB) and
           ’M’ (for MiB) are  understood.   The  upload  rate  is  limited  on
           average,  meaning  that  if  you limit the rate to 10K and Wput was
           just able to send with 5K for the first seconds, it will  send  (if
           possible) afterwards more than 10K until the average rate of 10K is
           fulfilled.

       --no-directories
           If Wput is unable to CWD into a directory, it will  try  to  create
           it. If this is not the desired behaviour specify this flag to force
           Wput not to create any directories.

       -Y MODE
       --proxy=MODE
           MODE can be either http for http-based  proxies  (such  as  SQUID),
           socks for SOCKSv5 proxies or off to disable the proxy.

       --proxy-user=NAME
           If the proxy-server requires authentication, use NAME as user-name.
           You need to specify --proxy-pass too. These information can also be
           stored in the wputrc-file.

       --proxy-pass=PASS
           Specifies the password to use for the proxy.

       -p
       --port-mode
           Per  default, Wput uses passive mode ftp, which works well for most
           configurations. If passive mode  fails,  Wput  automatically  falls
           back  to port mode.  If you want Wput to start using port mode ftp,
           specify this flag.

       -A
       --ascii
           Wput automatically determines  which  transfer-format  to  use,  by
           looking  at  the  file-extensions.  Certain files are recognized as
           ASCII. These are: txt, c, java, cpp, sh, f, f90,  f77,  f95,  bas",
           pro,  csh,  ksh,  conf, htm, html, php, pl, cgi, inf, js, asp, bat,
           cfm, css, dhtml, diz, h, hpp, ini, mak, nfo, shtml, shtm, tcl,  pas
           Specifying  this flag forces Wput to use ASCII mode file transfers.

       -B
       --binary
           Specifying this flag forces Wput to use BINARY mode file transfers.

       -m
       --chmod
           This  will  change  the  access  mode of the transferred files. The
           format is the three-digit octal  unix  mode,  e.g.  644  means  rw-
           r--r--.

       --force-tls
           If  this  flag  is  specified  and Wput is linked with the OpenSSL-
           library, the flag enforces the usage of TLS: If  no  TLS-connection
           can  be  established  the  process will cancel and not try to go on
           with an unencrypted connection.

DIAGNOSTICS

       Normally, the exit status is 0 if either everything went fine or  there
       was  nothing  to do.  If some files were skipped during the upload (due
       to timestamping or resume-rules) the exit status is set to 1.  If  some
       files  failed  to be transmitted due to an remote error, exit status is
       2. If some files failed and some others were skipped, exit status is 3.
       For  general  problems  like  failure of some system-functions the exit
       status is 4.

BUGS

       You are welcome to send bug reports and suggestions about Wput  through
       the             Sourceforge             Bugtracking             System:
       http://sourceforge.net/tracker/?group_id=141519

       Please send all available information that might concern this bug (e.g.
       Operating  System  and what can be done to reproduce the error). Supply
       also the debug-output (but remove  confidential  data  if  any),  which
       helps  a  lot analysing the problem. If you use a wputrc file, it might
       also be useful to provide the relevant parts of it.

       If there is a crash due to a segfault or similar, try to run  it  in  a
       debugger,  e.g.  gdb  ‘which  wput‘  core  and  type  where  to get the
       backtrace. It would also be great help if you could recompile wput with
       memory-debugging  support (make clean; make memdbg; [make install]) and
       use this debug-dump.

SEE ALSO

       Many options can be set in a wputrc file. For its documentation consult
       the  sample file provided by Wput.  There are some USAGE.* files in the
       doc/ directory of Wput. These contain further information  and  samples
       on how to use Wput.

AUTHOR

       Wput is written by Hagen Fritsch <fritsch+wput-man@in.tum.de>