Сохраняйте флаги непрочитанных сообщений во время миграции почты Cyrus с помощью rsync

Сохраняйте флаги непрочитанных сообщений во время миграции почты Cyrus с помощью rsync

я используюrsyncдля переноса почты между моим сервером Cyrus 2.3.14 (источник) и сервером Cyrus 2.3.16 (цель). Однако у меня возникла небольшая проблема.

На исходном сервере Cyrus почта хранилась в /var/spool/cyrus/domain/d/domain_name, а файлы квот и seen/sub хранились в /var/lib/cyrus/domain/d/domain_name. На целевом сервере Cyrus почта хранилась в /var/spool/imap/domain_name, а файлы квот и seen/sub хранились в /var/lib/imap. В файле /etc/imapd.conf цели у меня естьdefaultdomainустановить со значениемдоменное имяираздел по умолчаниюсо значением: /var/spool/imap/domain_name.

Поэтому я использую следующие команды:

  • *rsync -avt --delete --exclude "cyrus.**" /var/spool/cyrus/domain/d/domain_name cyrus_2.3.16_server:/var/spool/imap/domain/d/domain_name* для переноса почты

и

  • rsync -avt --delete --exclude ".sub" /var/lib/cyrus/domain/d/domain_name/user/ cyrus_2.3.16_server:/var/lib/imap/user* для переноса увиденных файлов.

Затем я извлекаюпочтовые ящики.dbс исходного сервера удалите информацию о домене (т.к. на целевом сервере я установилdefaultdomainи определитьраздел по умолчанию) и импортирую его на целевой сервер (ctl_mboxlist -u). Для завершения я выполняю команду реконструкции.

Когда я проверяю перенесенный почтовый ящик (хранящийся на целевом сервере), я получаю только непрочитанные письма. Есть ли еще одна команда или шаг, который я должен выполнить, или сообщите мне, если мой метод неправильный?

заранее спасибо

решение1

Вам также необходимо перенести пользовательские файлы в доменный путь:

Во-первых, вы не можете удалить файлы cyrus.header, иначе вы потеряете уникальные идентификаторы и информацию о просмотренных файлах. Вы также можете сохранить cyrus.index, чтобы не потерять информацию \Answered, \Draft и \Flagged (плюс любые пользовательские флаги) — и тогда cyrus.cache не повредит, хотя вы, вероятно, все равно восстановите его, просто чтобы быть уверенным.

rsync -avt --delete /var/spool/cyrus/domain/d/имя_домена cyrus_2.3.16_server:/var/spool/imap/domain/d/имя_домена

Еще раз — почему вы отказываетесь от файлов подписки?

rsync -avt --delete /var/lib/cyrus/domain/d/имя_домена/пользователь/ cyrus_2.3.16_server:/var/lib/imap/domain/d/имя_домена/пользователь

Наконец, я бы установил defaultdomain на что-то другое, иначе у ваших пользователей в этом домене не будет разделенных доменных путей.

В общем случае необходимо, чтобы конфигурация исходной и целевой машин была максимально схожей.

Связанный контент