如何将邮件从服务器同步到备份,只保留服务器上最新的邮件

目前,我做了一个简单的邮件备份:在服务器上有一个Maildir,我使用rsync同步Maildir从服务器备份。

所以我删除了服务器上的每个文件比一个月还要旧。 所以我只有最新的邮件在服务器上,其余的只在备份。 所以我不会在服务器上占用太多的空间,如果有人攻击我,他只会得到一个月的邮件,而不是整个存档。

我使用的命令是:

rsync -avz Maildir/ backupserver:backup/Mails/ cd Maildir touch -d 2011-07-30 dummy find -type f \! -newer dummy -delete 

这工作很好,但是当我移动已经在备份中的邮件时,我将在备份中拥有两个邮件副本。 旧备份作业的一个副本,一个来自新备份作业。 或者,我甚至可能决定删除邮件,它不会被删除的备份。

我可以使用带有–delete的rsync,但是我需要在服务器上拥有完整的存档,否则会删除备份中的旧邮件。

所以现在我的问题是:我如何同步邮件的方式,保留移动和删除?

好吧,我想我已经find了一个解决scheme:

使用Syncmaildir ,我保持我的电子邮件从本地maildir与远程maildir同步。 当我想从服务器删除旧邮件,但不是从备份,我首先同步最后一次,同步添加/删除/移动的邮件,然后我从本地和远程.smd /文件夹中删除邮件数据库并删除旧邮件。

详细步骤:

  • 用smd-pull同步邮件
  • 从服务器上删除旧邮件时:
    • 用smd-pull同步上一次
    • 用find-cmdline删除旧邮件。
    • 删除本地/远程的.smd / profilename__Mail.db.txt *文件
    • 再次同步,所以数据库得到重build剩余的文件,所以移动/删除可以被检测到。
  • 同步邮件一如既往