AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 727328
Accepted
David W
David W
Asked: 2015-10-08 05:02:53 +0800 CST2015-10-08 05:02:53 +0800 CST 2015-10-08 05:02:53 +0800 CST

计算接收 Postfix 邮件服务器成功交付与失败

  • 772

我正在尝试计算我的邮件服务器处理多少电子邮件以成功传递的粗略百分比与当电子邮件来自配置错误的邮件服务器、垃圾邮件等时它在现场丢弃的数量……

我首先在 /var/log/ 目录中运行了以下 2 个命令(以捕获邮件日志中的条目以及已轮换出的旧邮件日志):

grep "dsn=2.0.0, status=sent (delivered to maildir)" * | wc -l
7814

grep "NOQUEUE: reject: RCPT" * | wc -l
13338

但后来我认为这些条目可能会重复(尤其是 NOQUEUE)。因此,我运行了以下稍作修改的命令,以查看可能存在多少差异。

grep "dsn=2.0.0, status=sent (250 2.0.0 from MTA(" * | wc -l
8839

查看我的邮件日志条目,我收到了多个 NOQUEUE 条目以进行传递尝试。但我认为这是因为发送邮件服务器有时会尝试多次投递。例如:

Aug 10 10:48:24 mail postfix/smtpd[7159]: NOQUEUE: reject: RCPT from unknown[112.198.103.178]: 450 4.7.1 Client host rejected: cannot find your reverse hostname, [112.198.103.178]; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<112.198.103.178>
Aug 10 10:48:24 mail postfix/smtpd[7159]: NOQUEUE: reject: RCPT from unknown[112.198.103.178]: 454 4.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<112.198.103.178>
Aug 10 10:48:24 mail postfix/smtpd[7159]: NOQUEUE: reject: RCPT from unknown[112.198.103.178]: 454 4.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<112.198.103.178>
Aug 10 10:48:24 mail postfix/smtpd[7159]: disconnect from unknown[112.198.103.178]

所以我有两个问题:

  1. 我应该担心使用 grep 捕获重复条目NOQUEUE: reject: RCPT吗?
  2. 在过滤这些日志条目并得出正确的数字时,我应该考虑更好的方法吗?
  3. 我如何确定每次成功交付的唯一行。看看两者之间的差异grep "dsn=2.0.0, status=sent (delivered to maildir)" * | wc -l,grep "dsn=2.0.0, status=sent (250 2.0.0 from MTA(" * | wc -l我们可以看出有差异。
bash
  • 1 1 个回答
  • 36 Views

1 个回答

  • Voted
  1. Best Answer
    wurtel
    2015-10-08T05:48:18+08:002015-10-08T05:48:18+08:00
    1. 这些似乎是单独的交付尝试,因此应该这样计算。

    2. 假设这种事情一定已经解决了,我查看了munin postfix_mailstats脚本是如何完成的。那是一个 perl 脚本,所以正则表达式是 perl 兼容的:

    这些是成功的交付:

    / to=.*, status=sent /
    

    这些是拒绝:

    /postfix\/smtpd.*proxy-reject: \S+ (\S+)/
    /postfix\/smtpd.*reject: \S+ \S+ \S+ (\S+)/
    /postfix\/cleanup.* reject: (\S+)/
    

    正则表达式的捕获部分(括号之间)是拒绝代码,它指示消息是如何被拒绝的。

    1. delivered to maildir是本地交付,250 .* from MTA是远程交付,即两种不同类型的交付;所以你计算每个的不同数量并不奇怪。
    • 1

相关问题

  • Mac OS X:从 python 脚本中更改 $PATH

  • Bash 脚本:要求脚本以 root 身份运行(或使用 sudo)

  • crontab ifconfig 什么都不输出

  • 使用命令行工具按排序顺序计算重复项

  • 是否有 bash 等效于 ruby​​ 的“一些内容#{foo}”?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve