【发布时间】:2012-03-26 20:35:30
【问题描述】:
我的 Exim 邮件队列中充满了垃圾邮件,因此我运行了一个自定义 grep 命令来搜索包含垃圾邮件术语的假脱机邮件。问题是,我不知道 Exim 将消息分成多个文件(一个用于标头信息,一个用于数据等),因此我的 grep 命令删除了数据文件,同时保留了标头文件。
有谁知道我可以轻松找到并删除队列中具有头文件但没有数据文件的消息的方法?或者其他解决方法?
【问题讨论】:
我的 Exim 邮件队列中充满了垃圾邮件,因此我运行了一个自定义 grep 命令来搜索包含垃圾邮件术语的假脱机邮件。问题是,我不知道 Exim 将消息分成多个文件(一个用于标头信息,一个用于数据等),因此我的 grep 命令删除了数据文件,同时保留了标头文件。
有谁知道我可以轻松找到并删除队列中具有头文件但没有数据文件的消息的方法?或者其他解决方法?
【问题讨论】:
找到他们:
exipick '$message_body_missing'
查找并删除它们:
exipick -i '$message_body_missing' | xargs exim -Mrm
【讨论】:
exim -bP | grep spool_directory 查找您的本地 spool)。
由于缺少 exipick,
cd /var/spool/exim/input
find -name "*-H" -exec sh -c 'H={}; if [ ! -e ${H%-*}-D ]; then rm $H; fi' \;
【讨论】:
sh -c 表达式中使用{}:unix.stackexchange.com/a/156010/32931