packages icon



 XFERSTATS(8)                                                   XFERSTATS(8)
                                 31 Oct 2000



 NAME
      xferstats - compiles information about file transfers from logfiles

 SYNOPSIS
      xferstats [- | + ] [-c <config file>] [-T <number>] [[-+]C] [[-+]H]
      [[-+]n] [[-+]s] [[-+]r] [[-+]a] [[-+]g] [[-+]i] [[-+]u] [[-+]h] [[-+]m]
      [[-+]w] [[-+]M] [[-+]f [number]] [[-+]d [number]] [[-+]t [number]] [[-
      +]O [number]] [[-+]o [number]] [+L <number>] [+A] [-D <number>] [+D
      <number>] [+P <prefix>] [+B <timestamp>] [+E <timestamp>] [-v] [--
      version] [--help] [--] [filename(s)]


 DESCRIPTION
      xferstats is a utility that parses wu-ftpd, ncftpd, and (special)
      apache xferlogs (although it's not difficult to add support for other
      log types) and gives various information and totals about the data
      transferred.


 OPTIONS
      +    The single plus tells xferstats to get the xferlog from stdin.
           For example:

           cat xferlog | xferstats +

      -    The single hyphen tells xferstats to get the xferlog from a file.
           While this is the default behaviour, the configuration file may
           change the default, and this option allows you to override it.
           For example:

           xferstats - /var/log/xferlog

      -c configuration file
           Specify an alternate path and filename for the configuration
           file.  The packaged default is /usr/local/etc/xferstats.cfg but
           your administrator may have changed this.  A new default can be
           set by changing the appropriate variable in xferstats.h and
           recompiling.

      -T log type
           Specify the type of log file to be parsed.  Currently, only three
           types are defined, wu-ftpd for wu-ftpd-style logs, ncftpd for
           ncftpd-style logs, and apache for special Apache logs.  Note: you
           can also use "wu-ftp", "wuftp", "wuftpd", or "ncftp".  In order
           for xferstats to parse Apache logfiles, you must use a special
           LogFile line: LogFormat "%{%a %b %d %X %Y}t %T %h %b %f %u".
           xferstats may or may not support regular Apache logfiles in the
           future.  If this is something you want, please let me know.

      -v, --version
           Display what version of xferstats you're running.



                                    - 1 -      Formatted:  December 26, 2024






 XFERSTATS(8)                                                   XFERSTATS(8)
                                 31 Oct 2000



      --help
           Display a quick summary of the command line options.

      --   Use a -- (double hyphen) to indicate that you are finished giving
           parameters and will follow with a filename.  This is particularly
           useful when you want to specify a filename that begins with a +
           or -


    TOGGLE OPTIONS
      The options in this section can be either forced on with +[option] or
      forced off with -[option].  Options in this section, like all other
      options, will always override any settings in the xferstats
      configuration file.  Any arguments to toggle options should only be
      used when enabling an option. Supplying an argument when disabling an
      option will generate an error.


      C    When enabled, xferstats will try to weed out corrupt log lines by
           strictly checking to make sure that the data is valid.  If you
           --enable-debug_flow at compile time, xferstats will notify you
           when corrupt lines are detected.

      H    When enabled, xferstats will generate HTML tables and graphs
           instead of text tables.  In order to actually generate tables
           instead of broken graphic icons, you must put the graph JPGs in
           the directory pointed to by the GRAPH_PATH configuration command.
           For more information, see the CONFIGURATION FILE section.

      n    When enabled, xferstats will refrain from adding <HTML>, <BODY>,
           and <TITLE> tags, so that the output can be inserted into pages
           containing custom headers.

      s    When enabled, xferstats will output HTML as a single page
           (filename "xferstats.html") instead of a page for each section.
           This option also disables <HTML> and <BODY> tags, although it
           does produce a <TITLE> tag unless the NO_HTML_HEADERS option is
           also specified.

      r    When enabled, xferstats will generate statistics about real user
           connections (but not necessarily only real user connections)

      a    When enabled, xferstats will generate statistics about anonymous
           connections (but not necessarily only anonymous connections)

      g    When enabled, xferstats will generate statistics about guest
           connections (but not necessarily only guest connections)

      i    When enabled, xferstats will generate statistics about inbound
           (the product of a PUT) files (but not necessarily only inbound
           files)



                                    - 2 -      Formatted:  December 26, 2024






 XFERSTATS(8)                                                   XFERSTATS(8)
                                 31 Oct 2000



      u    When enabled, xferstats will generate statistics about outbound
           (the product of a GET) files (but not necessarily only outbound
           files)

      h    When enabled, xferstats will generate a report listing traffic by
           hour

      m    When enabled, xferstats will generate a report listing traffic by
           month (January, February, etc.)

      w    When enabled, xferstats will generate a report listing traffic by
           day of the week (Monday, Tuesday, etc.)

      M    When enabled, xferstats will generate a report listing traffic by
           day of the month (1st, 2nd, 3rd, etc.)

      f [number]
           When enabled, xferstats will generate a report listing traffic by
           file.  You can supply an optional argument that will determine
           how many file records xferstats displays (0 (zero) disables the
           limit)

      d [number]
           When enabled, xferstats will generate a report listing traffic by
           directory.  You can supply an optional argument that will
           determine how many directory records xferstats displays (0 (zero)
           disables the limit).  See the -D and +D options, as well as the
           DIR_DEPTH and DIR_FILTER configuration commands for more
           information.

      t [number]
           When enabled, xferstats will generate a report listing traffic by
           top-level domain.  You can supply an optional argument that will
           determine how many TLD records xferstats displays (0 (zero)
           disables the limit)

      O [number]
           When enabled, xferstats will generate a report listing traffic by
           domain.  You can supply an optional argument that will determine
           how many domain records xferstats displays (0 (zero) disables the
           limit)

      o [number]
           When enabled, xferstats will generate a report listing traffic by
           host.  You can supply an optional argument that will determine
           how many host records xferstats displays (0 (zero) disables the
           limit)


    OTHER OPTIONS




                                    - 3 -      Formatted:  December 26, 2024






 XFERSTATS(8)                                                   XFERSTATS(8)
                                 31 Oct 2000



      +A   Include all users, generate all reports

      +L <number>
           Limit the daily report to the last <number> days

      -D <number>
           Depth of path detail for directories (default 3)

      +D <directory>
           Generate reports on files located only in <directory>.  For
           example:

           +D /pub will report only on paths under /pub.  Specifying
           multiple +D options will instruct xferstats to include data from
           all specified directories.

      +P <pathprefix>
           Strip the <prefix> from any pathnames that begin with it.  This
           is the same as specifying a STRIP_PREFIX configuration file
           command.  Keep in mind that the DIR_FILTER (or +D) is checked
           before the STRIP_PREFIX (or +P) when using these.

      +B <timestamp>
           Providing a +B argument instructs xferstats to only generate data
           on transfers occuring after that time.  The time stamp format is
           "Jan DD HH:MM:ss YYYY".  One may combine +B and +E to generate a
           report about a specific window in time.

      +E <timestamp>
           Providing a +E argument instructs xferstats to only generate data
           on transfers occuring before that time.  The time stamp format is
           "Jan DD HH:MM:ss YYYY".  One may combine +B and +E to generate a
           report about a specific window in time.

           The default compile-time setting for the xferlog location is
           /var/log/xferlog but your administrator may have changed this.
           If xferstats reports an error, try specifying the filename as the
           last command line parameter.


 CONFIGURATION FILE
      The default configuration file path is /usr/local/etc/xferstats.cfg
      although your administrator may have changed this.

      Any text after a '#' is ignored, as long as the '#' begins a line or
      is prepended by whitespace.

      Commands (LOGFILE, ANON_TRAFFIC, etc) are not case sensitive, although
      some arguments may be.





                                    - 4 -      Formatted:  December 26, 2024






 XFERSTATS(8)                                                   XFERSTATS(8)
                                 31 Oct 2000



      LOGFILE <filename>
           sets the default log file to process.  It can be overridden by
           adding "<filename>" at the end of the command line options.  You
           may specify as many LOGFILE lines as you like; they will be
           processed in the order specified (although the order processed
           should not change the output).  Example:

           LOGFILE /var/log/xferlog LOGFILE /var/log/xferlog.1 LOGFILE
           /var/log/xferlog.2

      STRICT_CHECK
           takes no arguments.  When enabled, xferstats will try to weed out
           corrupt log lines by strictly checking to make sure that the data
           is valid.  If you --enable-debug_flow at compile time, xferstats
           will notify you when corrupt lines are detected.  It can be
           enabled with "+C" or disabled with "-C" on the command line.

      ANON_TRAFFIC
           takes no arguments.  When enabled, xferstats will generate
           statistics about anonymous connections (but not necessarily only
           anonymous connections).  It can be enabled with "+a" or disabled
           with "-a" on the command line.

      GUEST_TRAFFIC
           takes no arguments.  When enabled, xferstats will generate
           statistics about guest connections (but not necessarily only
           guest connections).  This option has no effect when parsing non-
           wuftpd logfiles.  It can be enabled with "+g" or disabled with
           "-g" on the command line.

      REAL_TRAFFIC
           takes no arguments.  When enabled, xferstats will generate
           statistics about real user connections (but not necessarily only
           real user connections).  It can be enabled with "+r" or disabled
           with "-r" on the command line.

      INBOUND
           takes no arguments.  When enabled, xferstats will generate
           statistics about inbound (the product of a PUT) files (but not
           necessarily only inbound files). It can be enabled with "+i" or
           disabled with "-i" on the command line.

      OUTBOUND
           takes no arguments.  When enabled, xferstats will generate
           statistics about outbound (the product of a GET) files (but not
           necessarily only outbound files). It can be enabled with "+u" or
           disabled with "-u" on the command line.

      HOURLY_REPORT
           takes no arguments.  When enabled, xferstats will generate a
           report listing traffic per hour.  It can be enabled with "+h" or



                                    - 5 -      Formatted:  December 26, 2024






 XFERSTATS(8)                                                   XFERSTATS(8)
                                 31 Oct 2000



           disabled with "-h" on the command line.

      DOW_REPORT
           takes no arguments.  When enabled, xferstats will generate a
           report listing traffic by day of the week (Monday, Tuesday, etc).
           It can be enabled with "+w" or disabled with "-w" on the command
           line.

      DOM_REPORT
           takes no arguments.  When enabled, xferstats will generate a
           report listing traffic by day of the month (1st, 2nd, etc).  It
           can be enabled with "+M" or disabled with "-M" on the command
           line.

      TLD_REPORT
           takes no arguments.  When enabled, xferstats will generate a
           report listing traffic by top-level domain (com, edu, net, us,
           uk, etc).  It can be enabled with "+t <number>" or disabled with
           "-t" on the command line.

      DOMAIN_REPORT
           takes no arguments.  When enabled, xferstats will generate a
           report listing traffic by domain (foo.com, blah.edu, etc).  It
           can be enabled with "+O <number>" or disabled with "-O" on the
           command line.

      HOST_REPORT
           takes no arguments.  When enabled, xferstats will generate a
           report listing traffic by host.  It can be enabled with "+o" or
           disabled with "-o" on the command line.

      DIR_REPORT
           takes no arguments.  When enabled, xferstats will generate a
           report listing traffic by directory.  The directory depth that
           xferstats will keep track of can be controlled by the DIR_DEPTH
           configuration command or with the "-l <depth>" command line
           option.  It can be enabled with "+d" or disabled with "-d" on the
           command line.

      FILE_REPORT
           takes no arguments.  When enabled, xferstats will generate a
           report listing traffic by file.  It can be enabled with "+f" or
           disabled with "-f" on the command line.

      MONTHLY_REPORT
           takes no arguments.  When enabled, xferstats will generate a
           report listing traffic per month (January, February, etc).  It
           can be enabled with "+m" or disabled with "-m" on the command
           line.





                                    - 6 -      Formatted:  December 26, 2024






 XFERSTATS(8)                                                   XFERSTATS(8)
                                 31 Oct 2000



      HTML_OUTPUT
           takes no arguments.  When enabled, xferstats will output all
           reports into individual HTML files.  Future versions will contain
           a configuration option to set the directory in which to place the
           HTML files.  For now they are placed in the present working#
           directory. It can be enabled with "+H" or disabled with "-H" on
           the command line.

      USE_STDIN
           takes no arguments.  When enabled, xferstats will, by default,
           read the logfile from the standard input instead of from a file
           on disk.  It can be enabled with "+" or disabled with "-" on the
           command line.

      LOG_TYPE
           takes one argument, the type of log that will be processed by
           default.  The argument can be either a number or a case
           insensitive string and are as follows:

           wu-ftpd log: "1" or "wu-ftp" or "wu-ftpd" or "wuftp" or "wuftpd"

           ncftpd log : "2" or "ncftp" or "ncftpd"

           Apache log : "3" or "apache"

           Therefore:

           LOG_TYPE 1

           LOG_TYPE wu-ftp

           LOG_TYPE wu-ftpd

           LOG_TYPE wuftp

           LOG_TYPE wuftpd

           are all equivalent.

           Future versions will contain support for additional logfile
           types. It can be set on the command line with "-T <number>"

      DIR_DEPTH
           takes one argument, the number of subdirectories deep that
           xferstats should go when generating statistics by directory.
           This configuration command has no effect when DIR_REPORT has not
           been enabled.  DIR_DEPTH has no upper bound.  A DIR_DEPTH of '0'
           (zero) tells xferstats to process all subdirectories. The default
           value is 3.  It can be set on the command line with "-D
           <number>".  Example:




                                    - 7 -      Formatted:  December 26, 2024






 XFERSTATS(8)                                                   XFERSTATS(8)
                                 31 Oct 2000



           DIR_DEPTH 3

      DIR_FILTER
           takes one argument, the directory that xferstats should report
           on.  xferstats will discard any data that does not have a path
           that begins with the value set by DIR_FILTER.  This value is
           case-sensitive, as it is part of a path name.  Specifying
           multiple statements will instruct xferstats to include data from
           all specified directories.  It can be set on the command line
           with "+D <path>".  Example:

           DIR_FILTER /pub/foobar

      NUMBER_FILE_STATS
           takes one argument, the number of files to report on in the file
           statistics section.  It must be a number greater than or equal to
           zero, with zero denoting no limit.  It can be set on the command
           line with "+f <number>".  The default is 50.

           NUMBER_FILE_STATS 50

      NUMBER_DIR_STATS
           takes one argument, the number of directories to report on in the
           directory statistics section.  It must be a number greater than
           or equal to zero, with zero denoting no limit.  It can be set on
           the command line with "+d <number>".  The default is 50.

      NUMBER_DAILY_STATS
           takes one argument, the number of days to report on in the daily
           statistics section.  It must be a number greater than or equal to
           zero, with zero denoting no limit.  It can be set on the command
           line with "+L <number>".  The default is 50.

           Note: the daily statistics section will always be displayed.

      NUMBER_TLD_STATS
           takes one argument, the number of top-level domains to report on
           in the TLD statistics section.  It must be a number greater than
           or equal to zero, with zero denoting no limit.  It can be set on
           the command line with "+t <number>".  The default is 50.

      NUMBER_DOMAIN_STATS
           takes one argument, the number of top-level domains to report on
           in the domain statistics section.  It must be a number greater
           than or equal to zero, with zero denoting no limit.  It can be
           set on the command line with "+O <number>".  The default is 50.

      NUMBER_HOST_STATS
           takes one argument, the number of hosts to report on in the host
           statistics section.  It must be a number greater than or equal to
           zero, with zero denoting no limit.  It can be set on the command



                                    - 8 -      Formatted:  December 26, 2024






 XFERSTATS(8)                                                   XFERSTATS(8)
                                 31 Oct 2000



           line with "+o <number>".  The default is 50.

      MAX_REPORT_SIZE
           takes one argument, the maximum size of any one output table.
           This is particularly useful to keep xferstats from generating
           gigantic tables that make graphical browsers choke.  It will
           split tables to be no larger than# this value.  It must be
           greater than or equal to ten, or zero, zero denoting no limit.
           It can be set on the command line with "+R <number>".  The
           default is 30.

      GRAPH_PATH
           takes one argument, the location of the JPGs used to draw graphs
           in the HTML output.  It can be an absolute path (ie,
           http://foo.bar.com/graphs/) or a relative path (ie, ../graphs/).
           You must include a trailing '/' or it will not work.  This option
           cannot be set on the command line.  The default is nothing (which
           will make the browser look for the graphs in the directory with
           the HTML).  Example:

           GRAPH_PATH ../graphs/

      NO_HTML_HEADERS
           takes no arguments.  When enabled, xferstats will refrain from
           adding <HTML>, <BODY>, and <TITLE> tags, so that the output can
           be inserted into pages containing custom headers. It can be
           enabled with "+n" or disabled with "-n" on the command line.

      REFRESH
           takes one argument, the number of seconds after being displayed
           that the browser should refresh it.  Unspecified or zero
           indicates no refresh.

      SINGLE_PAGE
           takes no arguments.  When enabled, xferstats will output HTML as
           a single page (entitled "xferstats.html") instead of a page for
           each section.  This option also disables <HTML> and <BODY> tags,
           although it does produce a <TITLE> tag unless the NO_HTML_HEADERS
           option is also specified. It can be enabled with "+s" or disabled
           with "-s" on the command line.

      STRIP_PREFIX
           takes one argument.  When specified, xferstats will strip the
           given string from the beginning of any paths.  Keep in mind when
           using this option with DIR_FILTER that the DIR_FILTER is applied
           -before- stripping, so that you must take this into account when
           specifying the DIR_FILTER string.  This option cannot be set on
           the command line.  Example:

           STRIP_PREFIX /home/ftp




                                    - 9 -      Formatted:  December 26, 2024






 XFERSTATS(8)                                                   XFERSTATS(8)
                                 31 Oct 2000



      The next 11 entries are all basically the same--they define how the
      reports are to be sorted.

           0 -- Sort by the number of bytes downloaded

           1 -- Sort by the number of files downloaded

           2 -- Sort by the "name".  This varies by report; for the file,
           directory, TLD, etc reports, it sorts them alphabetically; for
           the file size report it lists the file sizes in alphabetical
           order; for the daily report, it lists the days in order.  You get
           the idea.  3 -- Sort by average throughput, in K/s

           FILE_SORT_PREF, DIR_SORT_PREF, DOMAIN_SORT_PREF, TLD_SORT_PREF,
           HOST_SORT_PREF, DOM_SORT_PREF, DOW_SORT_PREF, HOURLY_SORT_PREF,
           DAILY_SORT_PREF, SIZE_SORT_PREF, MONTHLY_SORT_PREF

      CHUNK_INPUT
           takes one argument.  When specified, xferstats will parse the
           logfiles in chunks of the given size (in number of lines),
           process them, and continue. This will keep it from trying to
           parse the entire log at once, using up a lot of memory for large
           logs.  Specifying too small a value will cause xferstats to waste
           a lot of time switching tasks, while too large a value may slow
           it down as your system swaps.  Toy with this value a bit and see
           what works best for you.  If left unspecified, xferstats will
           continue to parse the logs in one pass.


 FILES
      xferlog (generated by wu-ftpd or ncftpd)

      /usr/local/etc/xferstats.cfg contains all of the default settings and
      many settings which cannot be set from the command line.

      If you installed the RPM version of xferstats, you'll find the JPGs
      for the graphs in /usr/doc/xferstats-x.xx/graphs  Insert the version
      you're running in place of the x.xx.


 BUGS
      The JPG graph pieces included are not ideal; sometimes artifacts show
      up.  I will eventually get around to making new GIFs or something.

      Please send bug reports to phil@off.net If the xferlog that you're
      using is smaller than 1 megabyte, please send a gzipped copy, along
      with the exact parameters you're using.


 ACKNOWLEDGEMENTS
      I greatly appreciate the suggestions and assistance of Nat Friedman



                                   - 10 -      Formatted:  December 26, 2024






 XFERSTATS(8)                                                   XFERSTATS(8)
                                 31 Oct 2000



      <ndf@mit.edu>.

      Thanks to Mike Shaver <shaver@mozilla.org> and Jamie Zawinski
      <jwz@netscape.com> for coughing up gigantic mozilla.org logs to aid my
      testing.

      Thanks to Phil Copeland <bryce@zen.ics.uwe.ac.uk> for getting on my
      back constantly to add new stuff, fix nagging bugs, and speed it up.
      Oh, and for using it, at least someone does :).

      Extreme gratitude to Mark Hagler <hagler@hagler.org>, someone whom
      I've left off of this list for too long.  Mark was kind enough to
      Amazon me a copy of O'Reillys _Pthreads Programming_ which was the
      catalyst for the threaded version and really helped get me interested
      in the project again.  While the threaded version doesn't exist
      anymore, the book is still terribly useful for other projects.

 SEE ALSO
      ftpd(8), ncftpd(8), xferlog(5)


 LOCATION
      xferstats is available from the following locations.  The old
      addresses are valid, but are deprecated!  Please use the new addresses
      whenever possible.

           http://xferstats.off.net/

           ftp://xferstats.off.net/pub/xferstats/


 AUTHOR
      xferstats is Copyright (c) 1997-2000 Phil Schwan <phil@off.net> and is
      released under the terms and provisions of the GNU Public License.




















                                   - 11 -      Formatted:  December 26, 2024