
Latest Version: 0.3rc3 2006-05-05
Xmail Log Archiver is exactly what it sounds like - a log archival system for XMail mail servers. XMail is a popular multi-platform mail server.
The tool not only places the expired logs into an
archival directory with the ability to zip them, it can analyze the various types of logs generated via a modular reporting system.
Thus, the postmaster can view statistics such as top HELO domains, top senders and so forth.
Written in PHP, the archival tool can be run on the many platforms that the XMail server has been ported to and can even run from an external machine.
Written in PHP, the archival tool can be run on the many platforms that the XMail server has been ported to and can even run from an external machine.
This project is actve, yet still in it's infancy. More documentation including HowTos and report module construction is forthcoming.
If you would like to help by contributing documentation, proofreading or code, contact Bryn.
Thanks to Rob for his contributions and to the creator of the original picture of the petrified log that became the logo.
For now, here is the output of 'xmlogarch --help':
For now, here is the output of 'xmlogarch --help':
Bash Wrapper Usage: xmlogarch [-a|--allreports] [(-c|--conf) file] [-d|--dots] [-da|--dotall] [(-dp|--dotsper) count] [(-dpe|--dotsperentry) multiplier] [(-gp|--genpass) password] (-h|--help) [(-l|--login) login-name] [-m|--movelogs] [(-mm|--maxmem) memorylimit] [-n|--noreports] [-nl|--nolog] [(-p|--pass) xmailpassword] [-q|--quiet] [-qs|--quietskip] [--{reportdirective}] [(-s|--stale) hours] [(-t|--top) number] [-u|--memuse] [-v|--verbose] [(-xp|--xmailport) number] Archive, report and/or zip XMail log files. All command line parameters and more oprions are available inside a config file. This is meant to be run by a scheduled cron job but may be run manually for testing and debugging. Please be aware that if you have anything that modifies, moves or removes log files specified in a configuration file, you must override the settings with command line options to avoid affecting your log files. Options: -a, --allreports Report Directive. Run all available reports. Individual reoprts may be enabled or disabled by passing further report directives after passing this option to customize reporting on the command line. -c, --conf Specify a location to load the initial configuration file from. These settings may be overridden by options passed at runtime. The original configuration file is used as default settings. REQUIRED: file -d, --dots Prints a character for every few operations. See -da, -dp and -dpe for more information. -da, --dotall Prints a character for every option in verbose mode. See -v, -dp and -dpe for more information. -dp, --dotsper Specifies the number of operations to count per character displayed in verbose operations. A setting of zero (0) will disable dots. See -v, -da and -dpe for more information. REQUIRED: count -dpe, --dotsperentry Specifies a multiplier to -dp for very large operations such as reading individual log lines. See -v, -da and -dp for more information. REQUIRED: multiplier -gp, --genpass Generate encrypted XMail Server password to store in a config file for performing Server Status Reporting. Network characteristics of the machine the script is currently runing on and the XMail server settings are used to seed the encryption, so when either of these change the encrypted password in config files needs to be updated. When specifying an XMail server at runtime, please also provide a password with the -p option. The script will exit after the encrypted password is output. For more information see -p. REQUIRED: password -h, --help Display help text and exit. -l, --login Uses provided XMail Server user name for performing Server Status Reporting. REQUIRED: login-name -m, --movelogs Enable movement of stale logs if disabled in config file. -mm, --maxmem Specify memory limit for PHP. The default is 32 Megabytes, but large and/or plentiful logs will require more or PHP exits with an error. REQUIRED: memorylimit -n, --noreports Do not process any report modules. This may prevent archival depending on other passed or config file options. -nl, --nolog Do not write information to current xmlogarch-YYYYMMDDHHHH log file. -p, --pass Uses provided XMail Server password for performing Server Status Reporting. REQUIRED: xmailpassword -q, --quiet Do not print any output to the console. This will also disable -v. If other options are enabled, information may still be mailed or written to xmlogarch-YYYYMMDDHHHH log file. -qs, --quietskip Do not announce skipped report modules. This option does not change which reports will be run. Using a named report directive will also trigger this option. For more information, please see the report directives section. --{reportdirective} See the section about report directives below.. -s, --stale Number of hours old a log must be before it is archived or reported on. REQUIRED: hours -t, --top Number to High Score items to display in reports. A setting of zero (0) will disable High Scores. Not all reports calculate High Scores. Items listed in High Scores depend on the Report Module. See the individual Report Module for specific details of what will be shown. REQUIRED: number -u, --memuse Display memory usage during processing. Memory usage information is NOT written to the xmlogarch-YYYYMMDDHHHH log file. This option is for performance tuning and debugging. -v, --verbose Verbose output enhances regular output by printing progress of file operations to the console as a series of characters. the number of characters per operation depend on other settings. This option also enables the -u option and like that option produces no logged output. Please see -u, -d -dp and -dpe for more information. -xp, --xmailport Specifies the administrative port number for the XMail server. This is used for Server Status reporting. REQUIRED: number Report Directives: There are three types of report directives - 'named' , 'only' and 'no'. 'Only' and 'no' are exactly what they seem. Using a 'no' report directive will skip the given report and using an 'only' directive will run only that report. The 'named' report is identical to running an 'only' report except that skipped reports are not announced (the -qs option). The format to specify a report directive is to start with the directive, add the report name and lastly add the word report. For example, the 'Zipped Log Files' (named 'zip') report can be skipped with the directive '--nozipreport'. The 'named' directive has no prefix, hence the term 'named'. So, running the 'Zipped Logged Files' report in 'named' mode would simply be '--zipreport'. The effects of the report directives are stackable as well. For example, you may specify report directives such as '--smtpreport --zipreport' to only run the 'SMTP Requests' and 'Zipped Log Files' reports without skipped reports. Alternate Usage: This script can also be run directly from a shell with the CLI version of PHP. PHP CLI Usage: php -f xmlogarch.php -- [-a|--allreports] [(-c|--conf) file] [-d|--dots] [-da|--dotall] [(-dp|--dotsper) count] [(-dpe|--dotsperentry) multiplier] [(-gp|--genpass) password] (-h|--help) [(-l|--login) login-name] [-m|--movelogs] [(-mm|--maxmem) memorylimit] [-n|--noreports] [-nl|--nolog] [(-p|--pass) xmailpassword] [-q|--quiet] [-qs|--quietskip] [--{reportdirective}] [(-s|--stale) hours] [(-t|--top) number] [-u|--memuse] [-v|--verbose] [(-xp|--xmailport) number]