FLUSH(8) FLUSH(8)
名称
flush - Postfix 快速刷新服务
概述
flush [通用 Postfix 守护进程选项]
描述
flush(8) 服务维护按目标地址分类的延迟邮件记录。这些信息用于提升 SMTP ETRN 请求及其命令行等效命令 "sendmail -qR" 或 "postqueue -f" 的性能。该服务需通过 master(8) 进程管理器启动运行。
这些记录以按目标地址划分的日志文件形式实现,内容为延迟邮件的队列 ID。日志文件采用追加写入模式,当系统收到对应目标地址的邮件发送请求时会被清空。这里的"目标地址"指的是电子邮件地址中最后一个 @ 符号右侧的部分。
系统仅为符合条件的目标地址维护延迟邮件日志。符合条件的地址列表由 fast_flush_domains 配置参数指定,默认值为 $relay_domains。
本服务支持以下操作请求:
add 目标地址 队列ID
通知 flush(8) 服务,将指定队列 ID 的邮件标记为发往该目标地址的延迟邮件。
send_site 目标地址
请求发送所有排队等待发往该目标地址的邮件。
send_file 队列ID
请求发送指定队列 ID 的延迟邮件。
refresh
刷新超过 $fast_flush_refresh_time 小时未读取的非空日志文件,通过模拟发送请求(如上所述)来更新对应目标地址的状态。
同时删除超过 $fast_flush_purge_time 天未更新的空日志文件。
该操作在后台自动完成。
purge
对所有目标地址日志文件执行 refresh 操作。
安全性
flush(8) 服务不涉及敏感安全操作。它既不进行网络通信,也不与本地用户交互。快速刷新服务可以 chroot 方式在固定的低权限环境下运行。
诊断
操作问题和事务记录会被发送至 syslogd(8) 或 postlogd(8) 日志服务。
已知问题
快速刷新日志文件仅在收到"发送"请求时清空,而非实际邮件送达时,因此可能积累过时或冗余数据。为保持系统稳定运行,必须定期执行"刷新"操作。可通过在 master.cf 配置文件中设置合适的唤醒计时器来自动化此过程。
当收到发送邮件到符合条件的地址的请求时,flush(8) 服务会请求发送该地址日志文件中列出的所有邮件,而不考虑这些邮件的实际收件人。对于发往 relay_domains 地址的邮件,这通常不会造成问题,因为这类邮件通常只包含单一域名的收件人。
配置参数
对 main.cf 的配置更改会被 flush(8) 服务自动加载,因为该服务进程只会运行有限时间。使用 "postfix reload" 命令可以加速配置更新。
以下仅列出关键参数摘要,完整说明和示例请参考 postconf(5) 手册。
config_directory (参见 'postconf -d' 输出)
Postfix 主配置文件 main.cf 和 master.cf 的默认存储目录。
daemon_timeout (18000秒)
Postfix 守护进程处理单个请求的最长时间,超时后会被内置监控程序终止。
fast_flush_domains ($relay_domains)
可启用快速刷新日志功能的目标地址列表。
fast_flush_refresh_time (12小时)
非空但未读取的快速刷新日志文件的最长刷新间隔。
fast_flush_purge_time (7天)
空日志文件的最长保留时间。
ipc_timeout (3600秒)
进程间通信通道的最长等待时间。
max_idle (100秒)
Postfix 守护进程在无连接状态下保持运行的最长时间。
max_use (100)
Postfix 守护进程在自动重启前可处理的最大连接数。
parent_domain_matches_subdomains (参见 'postconf -d' 输出)
指定哪些 Postfix 功能会将 "example.com" 模式自动匹配到其子域名(如 sub.example.com),而不需要显式指定 ".example.com" 模式。
process_id (只读)
当前 Postfix 进程的 ID。
process_name (只读)
当前 Postfix 进程的名称。
queue_directory (参见 'postconf -d' 输出)
Postfix 邮件队列的根目录位置。
syslog_facility (mail)
Postfix 日志使用的 syslog 设施。
syslog_name (参见 'postconf -d' 输出)
在 syslog 记录中为进程名称添加的前缀,例如将 "smtpd" 显示为 "prefix/smtpd"。
Postfix 3.3 及以上版本新增:
service_name (只读)
当前守护进程在 master.cf 中定义的服务名称。
文件
/var/spool/postfix/flush/,快速刷新日志文件存储目录。
参见
smtpd(8) - SMTP 服务器
qmgr(8) - 队列管理器
postconf(5) - 配置参数详解
master(5) - 守护进程通用配置
master(8) - 进程管理服务
postlogd(8) - Postfix 日志服务
syslogd(8) - 系统日志服务
说明文档
ETRN_README - Postfix ETRN 功能使用指南
授权条款
使用本软件需遵循 Secure Mailer 授权协议。
历史版本
本服务首次出现于 Postfix 1.0 版本。
作者信息
Wietse Venema
IBM T.J. Watson 研究院
邮政信箱 704
美国纽约州约克镇高地市,邮编 10598
Wietse Venema
Google 公司
纽约第八大道 111 号
美国纽约州纽约市,邮编 10011
FLUSH(8)