所以我在Linode 1080 VPS上部署了Postfix + saslauthd + Courier-IMAP。我们是一家小公司,我们有大约30个帐户(为了方便起见,我使用物理*nix用户+ Maildirs,请参阅后面的文章),但我们广泛使用了Courier的共享文件夹(用于几个帐户)的特性,以及我用Ruby编写的自定义脚本。它通过垃圾邮件杀手过滤电子邮件,读取带有某些规则的YAML文件,然后执行几次检查以查看在我们复杂的结构中将电子邮件提交到何处。Maildirs和phyiscal用户为我提供了所需的灵活性。
邮件被接收,然后传递给我的脚本,该脚本在用户的主目录中的.forward文件中定义。
总之,这个脚本大约需要2秒才能完成。现在,我们没有一个相对较高的电子邮件量(我估计每小时大约有30-50封电子邮件),但我正在寻找加快速度的方法,还确保如果我们的电子邮件负载越来越高(或者我们遇到了“垃圾邮件风暴”),我们的服务器不会突然失去记忆等等。我的问题是:
提前谢谢。
P.S.:电子邮件(嗯,/home)存储在一个单独的带有noatime的XFS分区上。
发布于 2009-05-18 19:04:37
在邮件传递给我的脚本之前,通过垃圾邮件杀手守护进程(而不是每次收到邮件时都启动应用程序)过滤电子邮件的方法是什么?我想用我现在的方式做这件事是不好的。
看看amavisd-新,它是用perl编写的。它将做你想要的,集成在一个网络级别(如果你想),并提供杀毒扫描以及。大多数主要的linux发行版都将其作为预先构建的软件包提供。您唯一需要担心的是,一些发行版将使用带有偶尔bug的陈旧版本。这些bug中的大多数会导致amavis楔形或终止;因此,如果它比官方站点的版本老了3个版本,我会认真考虑手工管理这个包。
有办法限制多少电子邮件后缀传递给我的脚本在同一时间?我不想让我的脚本同时运行10个实例。
你说的是限制利率。考虑到服务器的“小”大小,我会将后缀速率限制器设置为每分钟3到6封电子邮件,而不是设置在扫描端。如果您尝试接受所有的发送,垃圾邮件风暴将简单地阻塞您的队列,而且您将以积压告终。
我如何使我的脚本成为一个守护进程?这会让事情变得更快吗?
吨!在这方面我帮不了你,但是让你的脚本提前启动将减少大量的开销。
https://serverfault.com/questions/9545
复制相似问题