qshape - Print Postfix queue domain and age distribution
qshape [-s] [-p] [-m min_subdomains]
[-b bucket_count] [-t bucket_time]
[-l] [-w terminal_width]
[-N batch_msg_count] [-n batch_top_domains]
[-c config_directory] [queue_name ...]
The qshape program helps the administrator understand the Postfix queue message distribu-
tion in time and by sender domain or recipient domain. The program needs read access to
the queue directories and queue files, so it must run as the superuser or the mail_owner
specified in main.cf (typically postfix).
-s Display the sender domain distribution instead of the recipient domain distribu-
tion. By default the recipient distribution is displayed. There can be more recip-
ients than messages, but as each message has only one sender, the sender distribu-
tion is a message distribution.
-p Generate aggregate statistics for parent domains. Top level domains are not shown,
nor are domains with fewer than min_subdomains subdomains. The names of parent
domains are shown with a leading dot, (e.g. .example.com).
When used with the -p option, sets the minimum subdomain count needed to show a
separate line for a parent domain. The default is 5.
The age distribution is broken up into a sequence of geometrically increasing
intervals. This option sets the number of intervals or "buckets". Each bucket has a
maximum queue age that is twice as large as that of the previous bucket. The last
bucket has no age limit.
The age limit in minutes for the first time bucket. The default value is 5, meaning
that the first bucket counts messages between 0 and 5 minutes old.
-l Instead of using a geometric age sequence, use a linear age sequence, in other
words simple multiples of bucket_time.
This feature is available in Postfix 2.2 and later.
The output is right justified, with the counts for the last bucket shown on the
80th column, the terminal_width can be adjusted for wider screens allowing more
buckets to be displayed without truncating the domain names on the left. When a row
for a full domain name and its counters does not fit in the specified number of
columns, only the last 17 bytes of the domain name are shown with the prefix
replaced by a '+' character. Truncated parent domain rows are shown as '.+' fol-
lowed by the last 16 bytes of the domain name. If this is still too narrow to show
the domain name and all the counters, the terminal_width limit is violated.
When the output device is a terminal, intermediate results are shown each
"batch_msg_count" messages. This produces usable results in a reasonable time even
when the deferred queue is large. The default is to show intermediate results every
When reporting intermediate or final results to a termainal, report only the top
"batch_top_domains" domains. The default limit is 20 domains.
The main.cf configuration file is in the named directory instead of the default
By default qshape displays the combined distribution of the incoming and active
queues. To display a different set of queues, just list their directory names on
the command line. Absolute paths are used as is, other paths are taken relative to
the main.cf queue_directory parameter setting. While main.cf supports the use of
$variable expansion in the definition of the queue_directory parameter, the qshape
program does not. If you must use variable expansions in the queue_directory set-
ting, you must specify an explicit absolute path for each queue subdirectory even
if you want the default incoming and active queue distribution.
mailq(1), List all messages in the queue.
QSHAPE_README Examples and background material.
$config_directory/main.cf, Postfix installation parameters.
$queue_directory/maildrop/, local submission directory.
$queue_directory/incoming/, new message queue.
$queue_directory/hold/, messages waiting for tech support.
$queue_directory/active/, messages scheduled for delivery.
$queue_directory/deferred/, messages postponed for later delivery.
The Secure Mailer license must be distributed with this software.