Email
如何將郵件從伺服器同步到備份,只保留伺服器上的最新郵件
目前我做了一個簡單的郵件備份:在伺服器上有一個 Maildir,我使用 rsync 將 Maildir 從伺服器同步到備份。
所以我在伺服器上刪除每個早於一個月的文件。所以我只有伺服器上的最新郵件,其餘的只有備份。所以我不會在伺服器上使用太多空間,如果有人黑了我,他只會收到一個月的郵件,而不是整個存檔。
我使用的命令是:
rsync -avz Maildir/ backupserver:backup/Mails/ cd Maildir touch -d 2011-07-30 dummy find -type f \! -newer dummy -delete
這工作得很好,但是當我移動已經在備份中的郵件時,我將在備份中擁有兩個郵件副本。一份來自舊備份作業,一份來自新備份。或者我什至可能決定刪除郵件,它不會在備份中被刪除。
我可以將 rsync 與 –delete 一起使用,但是我需要在伺服器上保存完整的存檔,否則它也會刪除備份中的舊郵件。
所以現在我的問題是:我怎樣才能以一種保留移動和刪除的方式同步郵件?
好的,我想我找到了解決方案:
使用Syncmaildir,我使來自本地 maildir 的電子郵件與遠端 maildir 保持同步。當我想從伺服器中刪除舊郵件而不是從備份中刪除時,我首先同步最後一次,同步添加/刪除/移動的郵件,然後我從本地和遠端 .smd/ 文件夾中刪除 mail-db並刪除舊郵件。
詳細步驟:
使用 smd-pull 同步郵件
從伺服器中刪除舊郵件時:
- 與 smd-pull 同步最後一次
- 使用 find-cmdline 刪除舊郵件。
- 本地/遠端刪除 .smd/profilename__Mail.db.txt* 文件
- 再次同步,以便為剩余文件重建數據庫,因此可以檢測到移動/刪除。
像往常一樣同步郵件