系统管理指南:网络服务

管理队列目录

本节介绍了一些有助于队列管理的任务。有关仅客户机适用的队列的信息,请参阅sendmail 版本 8.12 中的配置文件 submit.cf。有关其他相关信息,可以参阅sendmail 版本 8.12 中新增的队列功能

请参阅以下内容:

Procedure如何显示邮件队列 /var/spool/mqueue 的内容

    显示队列中的消息数以及从队列中清除消息的速度。

    键入以下命令:


    # /usr/bin/mailq | more
    

    此命令将提供以下信息。

    • 队列 ID

    • 消息大小

    • 消息进入队列的日期

    • 消息状态

    • 发件人和收件人

    另外,此命令还会立即检查授权属性 solaris.admin.mail.mailq。如果检查成功,将执行与使用 sendmail 指定 -bp 标志等效的操作。如果检查失败,则会列显一条错误消息。缺省情况下,对所有用户均会启用此授权属性。通过修改 prof_attr 中的用户项,可以禁用该授权属性。有关更多信息,请参阅 prof_attr(4)mailq(1) 手册页。

Procedure如何在邮件队列 /var/spool/mqueue 中强制进行邮件队列处理

例如,使用此过程可处理向以前无法接收消息的系统发送的消息。

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 强制进行队列处理,并在清空队列时显示作业进度。


    # /usr/lib/sendmail -q -v 
    

Procedure如何运行邮件队列 /var/spool/mqueue 的子集

例如,使用此过程可强制处理地址子串(如主机名)。另外,使用此过程还可强制处理队列中的特定消息。

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 使用 -qRstring 随时运行该邮件队列的子集。


    # /usr/lib/sendmail -qRstring
    
    string

    使用收件人别名或 user@host.domain 的子串(如主机名)。

    或者,可使用 -qInnnnn 运行该邮件队列的子集。


    # /usr/lib/sendmail -qInnnnn
    
    nnnnn

    使用队列 ID。

Procedure如何移动邮件队列 /var/spool/mqueue

如果要移动该邮件队列,请按照以下说明操作。

  1. 成为邮件主机的 root 或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 中止 sendmail 守护进程。


    # svcadm disable network/smtp:sendmail
    

    现在,sendmail 将不再处理该队列目录。

  3. 转至 /var/spool 目录。


    # cd /var/spool
    
  4. 将目录 mqueue 及其所有内容移动到 omqueue 目录中。然后,创建一个名为 mqueue 的新的空目录。


    # mv mqueue omqueue; mkdir mqueue
    
  5. 将该目录权限按属主设置为读取/写入/执行,按组设置为读取/执行。另外,将属主和组设置为 daemon


    # chmod 750 mqueue; chown root:bin mqueue
    
  6. 启动 sendmail


    # svcadm enable network/smtp:sendmail
    

Procedure如何运行旧邮件队列 /var/spool/omqueue

要运行旧邮件队列,请按照以下说明操作。

  1. 成为 root 或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 运行该旧邮件队列。


    # /usr/lib/sendmail -oQ/var/spool/omqueue -q
    

    -oQ 标志用于指定备用队列目录。-q 标志用于指示运行该队列中的所有作业。如果要在屏幕中显示详细输出,请使用 -v 标志。

  3. 删除该空目录。


    # rmdir /var/spool/omqueue