EXIMSTATS(8)

πŸ’– NAME πŸ’–

okay so bestie, this is the manual page for eximstats β€” that's the section 8 (sysadmin-coded) Exim one β€” and what it does is literally generate statistics from Exim mainlog or syslog files. slay. πŸ’…


🌸 SYNOPSIS 🌸

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

✨ Output ✨

  • -txt β€” spit the results out as plain text to STDOUT. simple. clean. iconic.
  • -txt=filename β€” same plain text energy, but into a file. and yes, filename - for STDOUT is accepted, we love a flexible queen 🫢
  • -html β€” output the results in HTML, to STDOUT. pretty web vibes ✨
  • -html=filename β€” HTML into a file. filename - for STDOUT is accepted, no cap.
  • -xls β€” output in Excel compatible Format to STDOUT. heads up though: this one requires the Spreadsheet::WriteExcel CPAN module.
  • -xls=filename β€” Excel compatible format into a file. filename - for STDOUT is accepted. spreadsheet girlies rise πŸ‘‘

πŸŽ€ Options πŸŽ€

  • -hnumber β€” histogram divisions per hour. default is 1, and 0 suppresses histograms entirely. valid values are literally just:

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

  • -ne β€” don't display error information. we're ignoring the drama πŸ™ˆ
  • -nr β€” don't display relaying information.
  • -nr/pattern/ β€” don't display relaying information that matches. selective filtering, main character energy.
  • -nt β€” don't display transport information.
  • -nt/pattern/ β€” don't display transport information that matches.
  • -qlist β€” list of times for queuing information. a single 0 item suppresses it.
  • -tnumber β€” display top number sources/destinations. default is 50, and 0 suppresses the top listing.
  • -tnl β€” omit local sources/destinations in the 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. super 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. buckets, but make it data πŸ“Š

  • -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. ngl 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. and if none of these options are specified, then -byhost is assumed as a default. she's the default for a reason πŸ’…
  • -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. two names, one vibe πŸ¦‹
  • -pattern Description /Pattern/ β€” look for the specified pattern and count the number of lines in which it appears. and bestie, this option can be specified multiple times:
 -pattern 'Refused connections' '/refused connection/'
  • -merge β€” this option allows eximstats to merge old eximstat reports together:
 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! she can't invent facts she never had.
  • 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
  • -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. giving her permission to find nothing, iconic.
  • -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! πŸ”₯

πŸ’œ 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. ✨


🫢 AUTHOR 🫢

there is a website at https://www.exim.org β€” this contains details of the mailing list exim-users@exim.org. go say hi bestie πŸ’Œ


πŸ’€ 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 :) 🌈

okay that's the whole thing, no cap. this page came from perl v5.42.3, dated 2026-10-06, and it's the EXIMSTATS(8) situation β€” go parse some logs and slay πŸ‘‘πŸ’…βœ¨

πŸ“¦ where this page comes from