Here is some free software. All are perl or shell scripts. All programs are fairly small. The annotation (old) means I am no longer using or updating this program.

The bmlpr program is a printer filter for use with the BillMax billing software.  It slightly transforms the input so sender and recipient addresses may be aligned to fit window envelopes.

The cidr2access program will read stdin or Postfix access files, copying input unchanged to output except that if the first field is an IP range or CIDR block, it is converted into Postfix-compatible network entries.

The postfix.transform.log program will read syslog output generated by Postfix, identify all lines belonging to the same message-id, and print them preceded by a hash code calculated from that message-id. This lets you quickly scan a log and identify the history of a specific message.

The softbounce program when invoked without arguments will print the soft_bounce status ('yes' or 'no') for /etc/postfix and for any additional instances of Postfix in directories /etc/pf1 through /etc/pf6. If given a 'yes' or 'no' argument it will change the soft_bounce status of each instance to the specified value. The 'postconf' command is invoked to edit This command is used to change the soft_bounce status to 'no' before making major Postfix changes. Once the changes have been tested the soft_bounce status can be set back to 'no'.

The pfdiff program takes two directory names where Postfix instances are installed and prints a difference listing of the values from in each. It does this by invoking postconf on each instance. It is useful for comparing multiple instances of Postfix, or comparing Postfix configurations before and after major revisions, if you save the old configuration in a temporary directory before the revisions are done.

The count.pfq prints a count of messages in each of the Postfix queues.

The cleanq program will read the output of Postfix's 'mailq' command from standard input, and write to standard output the same information one queue entry per line. This makes it easier to do greps.

The lowcal program will accept one or more month names (which may be arbitrarily abbreviated) and/or a year, and will print a calendar formatted by the 'cal' command.

The field program does awk '{print $1}' and similar things, but you invoke it as 'field 1', 'field 2 4 5', etc.

The watchdisk program will let you monitor disk space on multiple filesystems and invoke external programs as needed to recover space. I run it on my machines with user home directories to page me if some filesystem gets low in space. I also use it on my News machines to automatically invoke News expiration as needed.

The program does trivial macro substitutions in a file. I use it to generate an expire.ctl file with expiration times adjusted as needed based on how low the disk space is on a News spool directory. It can be used in conjunction with the watchdisk program to automatically do News expiration with a custom-adjusted expire.ctl file. I have also provided instructions on how to do this.

The mail2rnews script accepts a mail message, converts it to a News posting by doing table-driven header transformations, and feeds the result to the rnews that comes with inn for posting to a newsgroup. The original message-id is preserved (but its syntax is corrected if necessary), so duplicate suppression is automatic.

The newsyslog script will roll over log files. It's a bit more intelligent then most. It reads a .list file that specifies which files are to be rolled over, and it will accept wildcard entries. This is useful if you have lots of log files, such as for many different domains on your web server. It will also let you specify command(s) to run after log file rollover and which daemons to send SIGHUP to, by reading their pids from specified files.

The fixhist script regenerates your News history file (as maintained by inn), squeezing out invalid lines. It is very scrupulous about checking for errors, so that it should be fairly safe to let it run unattended. It also tries to throttle inn for as short a time as possible, only while makehistory is running.

The mostspace script takes a list of candidate directories, invokes df on each of them, finds the one with the most free disk space, and prints its name. It's useful to select a temp directory when doing things like sort or expire.

The innd.stats script scans your news.notice file looking for entries generated by Joe Greco's innd-timer patches at and prints them in human-readable format.

The make.diablo script reads specially formatted lines in your dnewsfeeds file and generates corresponding dnntpspool.ctl and diablo.hosts files. This helps keep all three files in exact sync and makes maintenance easier.

The qmail script moves queue files across sendmail queues. It was written for the old (now-obsolete) IDA sendmail, but might be adaptable for newer sendmails with some effort. There are many other similar scripts available on the Internet. Mine is the only one that I have found that includes some debugging functionality and also lets you pick which messages to move based on pattern-matching.

Up To my home page

$Id: index.html,v 1.10 2003/11/07 22:05:24 dhesi Exp $
$Source: /mh/home/dhesi/shell/,www/software/RCS/index.html,v $

Valid HTML 4.01!