我们在邮件队列中有很多来自某个地址的邮件。我想删除很多。我找到了按主题行删除的方法,但我想按发件人地址进行搜索,这似乎要复杂得多。(注意:这些主要是外发消息。)
一些谷歌搜索在HowToForge上找到了这个命令,但没有解释它的作用。
postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } / spammer@example\.net/ { print $1 }' | tr -d '*!' | postsuper -d -
Run Code Online (Sandbox Code Playgroud)
我试图使用mailqueuemng,但并没有走多远(一方面,它没有--help)。
可以逐步分析管道以查看它的作用。尝试按顺序运行每个命令,直到您完全理解它们:
postqueue -p
Run Code Online (Sandbox Code Playgroud)
打印队列
postqueue -p | tail -n +2
Run Code Online (Sandbox Code Playgroud)
摆脱前几行
postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } / spammer@example\.net/ { print $1 }'
Run Code Online (Sandbox Code Playgroud)
使用 spammer@example.net 搜索任何行;打印这些行的第一个字段。
postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } / spammer@example\.net/ { print $1 }' | tr -d '*!'
Run Code Online (Sandbox Code Playgroud)
摆脱任何 *!
这将输出一堆队列 ID。
postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } / spammer@example\.net/ { print $1 }' | tr -d '*!' | postsuper -d -
Run Code Online (Sandbox Code Playgroud)
最后一个命令告诉 postfix 删除这些队列 ID。
阅读上的好人页面postqueue
,tail
,tr
,和postsuper
。awk 是一种更复杂的语言,它是它自己的小语言。你需要的不仅仅是一个手册页来理解它的复杂性,尽管根据我的经验,99% 的 awk 用法很像那个特定的单行。
归档时间: |
|
查看次数: |
2958 次 |
最近记录: |