postsuper (linux command)

Content

 

Data

license: 
Version: 
Developer / owner:

Short description:

The postsuper command performs maintenance tasks on the Postfix in the waiting line. Use of this command is restricted to the root user.

 

 

Man page output

man postsuper
POSTSUPER(1)                    General Commands Manual                    POSTSUPER(1)

NAME
       postsuper - Postfix superintendent

SYNOPSIS
       postsuper [-psSv] [-c config_dir] [-d queue_id]
               [-h queue_id] [-H queue_id]
               [-r queue_id] [directory ...]

DESCRIPTION
       The  postsuper(1) command does maintenance jobs on the Postfix queue. Use of the
       command is restricted to  the  superuser.   See  the  postqueue(1)  command  for
       unprivileged queue operations such as listing or flushing the mail queue.

       By  default,  postsuper(1)  performs the operations requested with the -s and -p
       command-line options on all Postfix queue directories - this includes the incom‐
       ing,  active  and  deferred  directories  with mail files and the bounce, defer,
       trace and flush directories with log files.

       Options:

       -c config_dir
              The main.cf configuration file is in the named directory instead  of  the
              default  configuration  directory.  See  also the MAIL_CONFIG environment
              setting below.

       -d queue_id
              Delete one message with the named queue ID from the named  mail  queue(s)
              (default: hold, incoming, active and deferred).

              If  a  queue_id of - is specified, the program reads queue IDs from stan‐
              dard input. For example, to delete all mail with  exactly  one  recipient
              user@example.com:

              mailq | tail +2 | grep -v '^ *(' | awk  ´BEGIN { RS = "" }
                  # $7=sender, $8=recipient1, $9=recipient2
                  { if ($8 == "user@example.com" && $9 == "")
                        print $1 }
              ´ | tr -d '*!' | postsuper -d -

              Specify  "-d  ALL"  to  remove all messages; for example, specify "-d ALL
              deferred" to delete all mail in the deferred queue.  As a safety measure,
              the word ALL must be specified in upper case.

              Warning:  Postfix  queue  IDs are reused (always with Postfix <= 2.8; and
              with Postfix >= 2.9 when  enable_long_queue_ids=no).   There  is  a  very
              small  possibility  that postsuper deletes the wrong message file when it
              is executed while the Postfix mail system is delivering mail.

              The scenario is as follows:

              1)     The Postfix queue manager deletes the message that postsuper(1) is
                     asked  to delete, because Postfix is finished with the message (it
                     is delivered, or it is returned to the sender).

              2)     New mail arrives, and the new message is given the same  queue  ID
                     as the message that postsuper(1) is supposed to delete.  The prob‐
                     ability for reusing a deleted queue ID is about 1  in  2**15  (the
                     number  of  different microsecond values that the system clock can
                     distinguish within a second).

              3)     postsuper(1) deletes the new message, instead of the  old  message
                     that it should have deleted.

       -h queue_id
              Put  mail  "on  hold" so that no attempt is made to deliver it.  Move one
              message with the named queue ID from the named  mail  queue(s)  (default:
              incoming, active and deferred) to the hold queue.

              If  a  queue_id of - is specified, the program reads queue IDs from stan‐
              dard input.

              Specify "-h ALL" to hold all  messages;  for  example,  specify  "-h  ALL
              deferred"  to  hold all mail in the deferred queue.  As a safety measure,
              the word ALL must be specified in upper case.

              Note: while mail is "on hold" it will not expire when  its  time  in  the
              queue  exceeds  the  maximal_queue_lifetime or bounce_queue_lifetime set‐
              ting. It becomes subject to expiration after it is released from "hold".

              This feature is available in Postfix 2.0 and later.

       -H queue_id
              Release mail that was put "on hold".  Move one  message  with  the  named
              queue  ID  from  the  named mail queue(s) (default: hold) to the deferred
              queue.

              If a queue_id of - is specified, the program reads queue IDs  from  stan‐
              dard input.

              Note:  specify "postsuper -r" to release mail that was kept on hold for a
              significant fraction of  $maximal_queue_lifetime  or  $bounce_queue_life‐
              time, or longer.

              Specify "-H ALL" to release all mail that is "on hold".  As a safety mea‐
              sure, the word ALL must be specified in upper case.

              This feature is available in Postfix 2.0 and later.

       -p     Purge old temporary files that are left over  after  system  or  software
              crashes.

       -r queue_id
              Requeue  the message with the named queue ID from the named mail queue(s)
              (default: hold, incoming, active and deferred).  To requeue multiple mes‐
              sages, specify multiple -r command-line options.

              Alternatively,  if  a queue_id of - is specified, the program reads queue
              IDs from standard input.

              Specify "-r ALL" to requeue all messages. As a safety measure,  the  word
              ALL must be specified in upper case.

              A  requeued  message  is  moved  to  the maildrop queue, from where it is
              copied by the pickup(8) and cleanup(8) daemons to a new  queue  file.  In
              many respects its handling differs from that of a new local submission.

              ·      The   message   is   not   subjected   to   the  smtpd_milters  or
                     non_smtpd_milters settings.   When  mail  has  passed  through  an
                     external content filter, this would produce incorrect results with
                     Milter applications that depend on original SMTP connection  state
                     information.

              ·      The  message is subjected again to mail address rewriting and sub‐
                     stitution.  This is useful when rewriting rules  or  virtual  map‐
                     pings have changed.

                     The  address  rewriting  context  (local or remote) is the same as
                     when the message was received.

              ·      The message is subjected to the same content_filter  settings  (if
                     any)  as used for new local mail submissions.  This is useful when
                     content_filter settings have changed.

              Warning: Postfix queue IDs are reused (always with Postfix  <=  2.8;  and
              with  Postfix  >=  2.9  when  enable_long_queue_ids=no).  There is a very
              small possibility that postsuper(1) requeues the wrong message file  when
              it  is  executed  while  the  Postfix mail system is running, but no harm
              should be done.

              This feature is available in Postfix 1.1 and later.

       -s     Structure check and structure repair.  This should be  done  once  before
              Postfix startup.

              ·      Rename files whose name does not match the message file inode num‐
                     ber. This operation is necessary after restoring a mail queue from
                     a  different machine or from backup, when queue files were created
                     with Postfix <= 2.8 or with "enable_long_queue_ids = no".

              ·      Move queue files that are in the wrong place in  the  file  system
                     hierarchy  and  remove  subdirectories  that are no longer needed.
                     File position rearrangements are necessary after a change  in  the
                     hash_queue_names and/or hash_queue_depth configuration parameters.

              ·      Rename  queue  files created with "enable_long_queue_ids = yes" to
                     short names, for migration to Postfix <= 2.8.  The procedure is as
                     follows:

                     # postfix stop
                     # postconf enable_long_queue_ids=no
                     # postsuper

                     Run  postsuper(1)  repeatedly  until  it stops reporting file name
                     changes.

       -S     A redundant version of -s that requires that long file names  also  match
              the  message  file inode number. This option exists for testing purposes,
              and is available with Postfix 2.9 and later.

       -v     Enable verbose logging for debugging purposes. Multiple -v  options  make
              the software increasingly verbose.

DIAGNOSTICS
       Problems are reported to the standard error stream and to syslogd(8).

       postsuper(1)  reports the number of messages deleted with -d, the number of mes‐
       sages requeued with -r, and the number of messages whose  queue  file  name  was
       fixed  with  -s.  The report is written to the standard error stream and to sys‐
       logd(8).

ENVIRONMENT
       MAIL_CONFIG
              Directory with the main.cf file.

BUGS
       Mail that is not sanitized by Postfix (i.e. mail in the maildrop  queue)  cannot
       be placed "on hold".

CONFIGURATION PARAMETERS
       The  following  main.cf parameters are especially relevant to this program.  The
       text below provides only a parameter summary. See postconf(5) for  more  details
       including examples.

       config_directory (see 'postconf -d' output)
              The  default  location of the Postfix main.cf and master.cf configuration
              files.

       hash_queue_depth (1)
              The number of subdirectory levels for queue directories listed  with  the
              hash_queue_names parameter.

       hash_queue_names (deferred, defer)
              The  names  of queue directories that are split across multiple subdirec‐
              tory levels.

       queue_directory (see 'postconf -d' output)
              The location of the Postfix top-level queue directory.

       syslog_facility (mail)
              The syslog facility of Postfix logging.

       syslog_name (see 'postconf -d' output)
              The mail system name that is prepended to  the  process  name  in  syslog
              records, so that "smtpd" becomes, for example, "postfix/smtpd".

       Available in Postfix version 2.9 and later:

       enable_long_queue_ids (no)
              Enable long, non-repeating, queue IDs (queue file names).

SEE ALSO
       sendmail(1), Sendmail-compatible user interface
       postqueue(1), unprivileged queue operations

LICENSE
       The Secure Mailer license must be distributed with this software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA

       Wietse Venema
       Google, Inc.
       111 8th Avenue
       New York, NY 10011, USA

                                                                           POSTSUPER(1)

 

 

Help output

postsuper --help
usage: postsuper [-c config_dir] [-d queue_id (delete)] [-h queue_id (hold)] [-H queue_id (un-hold)] [-p (purge temporary files)] [-r queue_id (requeue)] [-s (structure fix)] [-S (redundant structure fix)][-v (verbose)] [queue...]

 

Related Content