На данный момент я делаю простое резервное копирование почты: на сервере есть 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. Когда я хочу удалить старые письма с сервера, но не из резервной копии, я сначала синхронизирую в последний раз, что синхронизирует добавленные / удаленные / перемещенные письма, затем я удаляю mail-db из локальной и удаленной папки .smd /. и удалите старые письма.
Шаги в деталях: