手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

ncftpspooler (1)

名称

ncftpspooler - Global batch FTP job processor daemon

用法概要

ncftpspooler -d [options]

ncftpspooler -l [options]

描述




User Commands                                     ncftpspooler(1)



NAME
     ncftpspooler - Global batch FTP job processor daemon

SYNOPSIS
     ncftpspooler -d [options]

     ncftpspooler -l [options]

OPTIONS

     Command line flags:

     -d      Begin  background processing of FTP jobs in the des-
             ignated FTP job queue directory.

     -q XX   Use this option to specify a directory to use as the
             FTP  job  queue  instead  of  the default directory,
             /var/spool/ncftp.

     -o XX   Use this option to specify a filename to use as  the
             log  file.  By default, (and rather inappropriately)
             the program simply uses a file called log in the job
             queue  directory.  If you don't want a log, use this
             option to specify /dev/null.

     -l      Lists the contents of the job queue directory.

     -s XX   When the job queue is empty, the program sleeps  120
             seconds  and  then  checks again to see if a new job
             has been submitted.  Use this option to  change  the
             number of seconds used for this delay.

DESCRIPTION
     The  ncftpspooler  program  evolved from the ncftpbatch pro-
     gram.  The ncftpbatch program was originally designed  as  a
     ``personal  FTP spooler'' which would process a single back-
     ground job a particular user and exit when it finished;  the
     ncftpspooler program is a ``global FTP spooler'' which stays
     running and processes background jobs as they are submitted.

     The job queue directory is monitored for specially-named and
     formatted text files.  Each file serves as a single FTP job.
     The  name  of the job file contains the type of FTP job (get
     or put), a timestamp indicating the earliest the job  should
     be  processed, and optionally some additional information to
     make it easier to create unique job files (i.e.  a  sequence
     number).   The  contents  of  the job files have information
     such as the remote server machine to FTP to, username, pass-
     word, remote pathname, etc.

     Your  job  queue  directory must be readable and writable by
     the user that you plan to run ncftpspooler as, so that  jobs



ncftpspooler       Last change: NcFTP Software                  1






User Commands                                     ncftpspooler(1)



     can be removed or renamed within the queue.

     More  importantly, the user that is running the program will
     need adequate privileges to access the local files that  are
     involved  in  the FTPing.  I.e., if your spooler is going to
     be processing jobs which upload  files  to  remote  servers,
     then  the  user will need read permission on the local files
     that will be uploaded (and directory access  permission  the
     parent  directories).  Likewise, if your spooler is going to
     be processing jobs which download files, then the user would
     need to be able to write to the local directories.

     Once  you have created your spool directory with appropriate
     permissions and ownerships, you can run  ncftpspooler -d  to
     launch  the spooler daemon.  You can run additional spoolers
     if you want to process more than FTP job from the  same  job
     queue  directory  simultaneously.   You can then monitor the
     log file (i.e., using tail -f ) to track the progress of the
     spooler.   Most  of  the  time  it  won't be doing anything,
     unless job files have appeared in the job queue directory.

JOB FILE NAMES
     When the ncftpspooler program monitors the job queue  direc-
     tory,  it  ignores  any  files that do not follow the naming
     convention for job files.  The job files must be prefixed in
     the  format of X-YYYYMMDD-hhmmss where X denotes a job type,
     YYYY is the four-digit year, MM is the two-digit month  num-
     ber,  DD  is  the two-digit day of the month, hh is the two-
     digit hour of the day (00-23), mm is the  two-digit  minute,
     and ss is the two-digit second.  The date and time represent
     the earliest time you want the job to be run.

     The job type can be g for a get (download from remote host),
     or p for  aput (upload to remote host).

     As  an example, if you wanted to schedule an upload to occur
     at 11:45 PM on December 7, 2001, a job file could be named

         p-20011207-234500

     In practice, the job files  include  additional  information
     such as a sequence number or process ID.  This makes it eas-
     ier to create unique job file names.  Here is the same exam-
     ple, with a process ID and a sequence number:

         p-20011207-234500-1234-2

     When submitting job files to the queue directory, be sure to
     use a dash character after the hhmmss field if you choose to
     append any additional data to the job file name.





ncftpspooler       Last change: NcFTP Software                  2






User Commands                                     ncftpspooler(1)



JOB FILE CONTENTS
     Job  files are ordinary text files, so that they can be cre-
     ated by hand.  Each line of the file is a  key-pair  in  the
     format  variable=value,  or is a comment line beginning with
     an octothorpe character (#), or is a blank line.  Here is an
     example job file:

         # This is a NcFTP spool file entry.
         job-name=g-20011016-100656-008299-1
         op=get
         hostname=ftp.freebsd.org
         xtype=I
         passive=1
         remote-dir=pub/FreeBSD
         local-dir=/tmp
         remote-file=README.TXT
         local-file=readme.txt

     Job files are flexible since they follow an easy-to-use for-
     mat and do not have many requirements, but there are  a  few
     mandatory  parameters that must appear for the spooler to be
     able to process the job.

     op      The operation (job type) to perform.   Valid  values
             are get and put.

     hostname
             The  remote  host  to  FTP  to.   This  may be an IP
             address or a DNS name (i.e.  ftp.example.com).

     For a regular get job, these parameters are required:

     remote-file
             The pathname of the file to download from the remote
             server.

     local-file
             The  pathname  to  use  on  the local server for the
             downloaded file.

     For a regular put job, these parameters are required:

     local-file
             The pathname of the file to  upload  to  the  remote
             server.

     remote-file
             The  pathname  to  use  on the remote server for the
             uploaded file.

     For a recursive get job, these parameters are required:




ncftpspooler       Last change: NcFTP Software                  3






User Commands                                     ncftpspooler(1)



     remote-file
             The pathname of the file or  directory  to  download
             from the remote server.

     local-dir
             The directory pathname to use on the local server to
             contain the downloaded items.

     For a recursive put job, these parameters are required:

     local-file
             The pathname of the file or directory to  upload  to
             the remote server.

     remote-dir
             The  directory  pathname to use on the remote server
             to contain the uploaded items.

     The rest of the parameters are optional.  The  spooler  will
     attempt  to  use reasonable defaults for these parameters if
     necessary.

     user    The username to use to login to the  remote  server.
             Defaults to ``anonymous'' for guest access.

     pass    The password to use in conjunction with the username
             to login to the remote server.

     acct    The account to use in conjunction with the  username
             to  login to the remote server.  The need to specify
             this parameter is extremely rare.

     port    The port number  to  use  in  conjunction  with  the
             remote  hostname  to  connect  to the remote server.
             Defaults to the standard FTP port number, 21.

     host-ip The IP address to use in conjunction with the remote
             hostname  to  connect  to  the  remote server.  This
             parameter can be  used  in  place  of  the  hostname
             parameter,  but one or the other must be used.  This
             parameter is commonly included along with the  host-
             name parameter as supplemental information.

     xtype   The transfer type to use.  Defaults to binary trans-
             fer type (TYPE I).  Valid values are I for binary, A
             for ASCII text.

     passive Whether  to  use FTP passive data connections (PASV)
             or FTP active data connections (PORT).  Valid values
             are  0  for  active, 1 for passive, or 2 to try pas-
             sive, then fallback to active.  The default is 2.




ncftpspooler       Last change: NcFTP Software                  4






User Commands                                     ncftpspooler(1)



     recursive
             This can be used to transfer entire directory trees.
             By  default,  only  a  single  file  is transferred.
             Valid values are yes or no.

     delete  This can be used to delete the source  file  on  the
             source  machine  after successfully transferring the
             file to the destination machine.  By default, source
             files  are not deleted.  Valid values are yes or no.

     job-name
             This isn't used by the program, but can be  used  by
             an  entity  which  is  automatically  generating job
             files.  As an example, when using the -bbb flag with
             ncftpput,  it  creates  a  job file on stdout with a
             job-name parameter so you can easily copy  the  file
             to  the  job  queue directory with the suggested job
             name as the job file name.

     pre-ftp-command

     post-ftp-command
             These  parameters  correspond  to  the  -W,  and  -Y
             options  of  ncftpget and ncftpput.  It is important
             to note that these refer  to  RFC959  File  Transfer
             Protocol  commands  and not shell commands, nor com-
             mands used from within /usr/bin/ftp or ncftp.

     pre-shell-command

     post-shell-command
             These parameters provide hooks so you can run a cus-
             tom  program  when  an  item  is  processed  by  the
             spooler.  Valid values are pathnames to  scripts  or
             executable  programs.   Note that the value must not
             contain any command-line arguments -- if you want to
             do  that, create a shell script and have it run your
             program with the command-line arguments it requires.

     Generally  speaking,  post-shell-command is much more useful
     than pre-shell-command  since  if  you  need  to  use  these
     options you're more likely to want to do something after the
     FTP transfer has completed rather than before.  For example,
     you might want to run a shell script which pages an adminis-
     trator to notify her that her 37 gigabyte file download  has
     completed.

     When  your  custom  program  is run, it receives on standard
     input the contents of the job file (i.e.  several  lines  of
     variable=value  key-pairs),  as  well as additional data the
     spooler may provide, such as a result key-pair with  a  tex-
     tual description of the job's completion status.



ncftpspooler       Last change: NcFTP Software                  5






User Commands                                     ncftpspooler(1)



     post-shell-command     update     a     log    file    named
     /var/log/ncftp_spooler.

         #!/usr/bin/perl -w

         my ($line);
         my (%params) = ();

         while (defined($line = <STDIN>)) {
              $params{$1} = $2
                   if ($line =~ /^([^=\#\s]+)=(.*)/);
         }

         if ((defined($params{"result"})) &&
           ($params{"result"} =~ /^Succeeded/))
         {
              open(LOG, ">> /var/log/ncftp_spooler.log")
                   or exit(1);
              print LOG "DOWNLOAD" if ($params{"op"} eq "get");
              print LOG "UPLOAD" if ($params{"op"} eq "put");
              print LOG " ", $params{"local-file"}, "\n";
              close(LOG);
         }

DIAGNOSTICS
     The log file should be examined to determine if  any  ncftp-
     spooler  processes  are  actively  working on jobs.  The log
     contains copious amounts of  useful  information,  including
     the  entire  FTP control connection conversation between the
     FTP client and server.

BUGS
     The recursive option may not be reliable since  ncftpspooler
     depends  on functionality which may or may not be present in
     the remote server software.  Additionally, even if the func-
     tionality is available, ncftpspooler may need to use heuris-
     tics which cannot be considered 100% accurate.  Therefore it
     is  best  to  create  individual  jobs  for each file in the
     directory tree, rather than  a  single  recursive  directory
     job.

     For  resumption of downloads to work, the remote server must
     support the FTP SIZE and MDTM primitives.  Most  modern  FTP
     server software can do this, but there are still a number of
     bare-bones ftpd implementations  which  do  not.   In  these
     cases,  ncftpspooler  will  re-download the file in entirety
     each time until the download succeeds.

     The program needs to be improved to detect jobs that have no
     chance  of  ever completing successfully.  There are still a
     number of cases where jobs can get spooled but  get  retried
     over  and  over  again  until  a  vigilant sysadmin manually



ncftpspooler       Last change: NcFTP Software                  6






User Commands                                     ncftpspooler(1)



     removes the jobs.

     The spool files may contain usernames and  passwords  stored
     in  cleartext.   These  files  should not be readable by any
     user except the user running the program!

AUTHOR
     Mike Gleason, NcFTP Software (http://www.ncftp.com).


ATTRIBUTES
     See  attributes(5)  for  descriptions   of   the   following
     attributes:

     +---------------+-------------------+
     |ATTRIBUTE TYPE | ATTRIBUTE VALUE   |
     +---------------+-------------------+
     |Availability   | network/ftp/ncftp |
     +---------------+-------------------+
     |Stability      | Volatile          |
     +---------------+-------------------+
SEE ALSO
     ncftpbatch(1),  ncftp(1), ncftpput(1), ncftpget(1), uucp(1).



NOTES
     This  software  was   built   from   source   available   at
     https://java.net/projects/solaris-userland.    The  original
     community       source       was       downloaded       from
     ftp://ftp.ncftp.com/ncftp/older_ver-
     sions/ncftp-3.2.3-src.tar.bz2

     Further information about this software can be found on  the
     open        source        community        website        at
     http://www.ncftp.com/ncftp/.



















ncftpspooler       Last change: NcFTP Software                  7