logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

eximstats - generates statistics from Exim mainlog or syslog files.

Author

       There is a website at https://www.exim.org/.

Description

       Eximstats parses exim mainlog and  syslog  files  to  output  a  statistical  analysis  of  the  messages
       processed.  By  default,  a  text  analysis  is generated, but you can request other output formats using
       flags.  See the help (-help) to learn about how to create charts from the tables.

Name

       eximstats - generates statistics from Exim mainlog or syslog files.

Synopsis

        eximstats [Output] [Options] mainlog1 mainlog2 ...
        eximstats -merge [Options] report.1.txt report.2.txt ... > weekly_report.txt

   Output:-txt
           Output the results in plain text to STDOUT.

       -txt=filename
           Output the results in plain text. Filename '-' for STDOUT is accepted.

       -html
           Output the results in HTML to STDOUT.

       -html=filename
           Output the results in HTML. Filename '-' for STDOUT is accepted.

       -xls
           Output  the  results in Excel compatible Format to STDOUT.  Requires the Spreadsheet::WriteExcel CPAN
           module.

       -xls=filename
           Output the results in Excel compatible format. Filename '-' for STDOUT is accepted.

   Options:-hnumber
           histogram divisions per hour. The default is 1, and 0 suppresses histograms. Valid values are:

           0, 1, 2, 3, 5, 10, 15, 20, 30 or 60.

       -ne Don't display error information.

       -nr Don't display relaying information.

       -nr/pattern/
           Don't display relaying information that matches.

       -nt Don't display transport information.

       -nt/pattern/
           Don't display transport information that matches

       -qlist
           List of times for queuing information single 0 item suppresses.

       -tnumber
           Display top <number> sources/destinations default is 50, 0 suppresses top listing.

       -tnl
           Omit local sources/destinations in top listing.

       -t_remote_users
           Include remote users in the top source/destination listings.

       -include_original_destination
           Include the original destination email addresses rather than just using the final ones.   Useful  for
           finding out which of your mailing lists are receiving mail.

       -show_dtlist
           Show the delivery times (DT)for all the messages.

           Exim must have been configured to use the +deliver_time logging option for this option to work.

           list  is  an  optional  list  of  times.  E.g.  -show_dt1,2,4,8 will show the number of messages with
           delivery times under 1 second, 2 seconds, 4 seconds, 8 seconds, and over 8 seconds.

       -show_rtlist
           Show the receipt times for all the messages. The receipt time is defined as the Completed hh:mm:ss  -
           queue_time_overall  -  the  Receipt  hh:mm:ss.  These figures will be skewed by pipelined messages so
           might not be that useful.

           Exim must have been configured to use the +queue_time_overall logging option for this option to work.

           list is an optional list of times. E.g. -show_rt1,2,4,8 will show the number of messages with receipt
           times under 1 second, 2 seconds, 4 seconds, 8 seconds, and over 8 seconds.

       -byhost
           Show results by sending host. This may be combined with -bydomain and/or -byemail and/or  -byedomain.
           If none of these options are specified, then -byhost is assumed as a default.

       -bydomain
           Show results by sending domain.  May be combined with -byhost and/or -byemail and/or -byedomain.

       -byemail
           Show  results  by  sender's  email  address.   May  be  combined with -byhost and/or -bydomain and/or
           -byedomain.

       -byemaildomain or -byedomain
           Show results by sender's email  domain.   May  be  combined  with  -byhost  and/or  -bydomain  and/or
           -byemail.

       -patternDescription/Pattern/
           Look for the specified pattern and count the number of lines in which it appears.  This option can be
           specified multiple times. E.g.:

            -pattern 'Refused connections' '/refused connection/'

       -merge
           This option allows eximstats to merge old eximstat reports together. E.g.:

            eximstats mainlog.sun > report.sun.txt
            eximstats mainlog.mon > report.mon.txt
            eximstats mainlog.tue > report.tue.txt
            eximstats mainlog.wed > report.web.txt
            eximstats mainlog.thu > report.thu.txt
            eximstats mainlog.fri > report.fri.txt
            eximstats mainlog.sat > report.sat.txt
            eximstats -merge       report.*.txt > weekly_report.txt
            eximstats -merge -html report.*.txt > weekly_report.html

           •   You can merge text or html reports and output the results as text or html.

           •   You  can  use  all  the  normal  eximstat  output options, but only data included in the original
               reports can be shown!

           •   When merging reports, some loss of accuracy may occur in the top n lists.  This will  be  towards
               the ends of the lists.

           •   The order of items in the top n lists may vary when the data volumes round to the same value.

       -charts
           Create graphical charts to be displayed in HTML output.  Only valid in combination with -html.

           This      requires      the      following     modules     which     can     be     obtained     from
           http://www.cpan.org/modules/01modules.index.html

           GD
           GDTextUtil
           GDGraph

           To install these, download and unpack them, then use the normal perl installation procedure:

            perl Makefile.PL
            make
            make test
            make install

           On DebianGNU/Linux  you  can  use  "apt-get  install  libgd-perl  libgd-text-perl  libgd-graph-perl"
           instead.

       -chartdirI <dir>
           Create the charts in the directory <dir>

       -chartrelI <dir>
           Specify the relative directory for the "img src=" tags from where to include the charts

       -emptyok
           Specify that it's OK to not find any valid log lines. Without this we will output an error message if
           we don't find any.

       -d  Debug  flag. This outputs the eval()'d parser onto STDOUT which makes it easier to trap errors in the
           eval section.  Remember to add 1 to the line numbers to allow for the title!

To Do

       This program does not perfectly handle messages whose received and delivered log lines are  in  different
       files,  which  can  happen  when  you  have  multiple  mail  servers  and a message cannot be immediately
       delivered. Fixing this could be tricky...

       Merging of xls files is not (yet) possible. Be free to implement :)

perl v5.40.1                                       2025-06-12                                       EXIMSTATS(8)

See Also