недавно на нашем почтовом сервере (Zimbra) произошел сбой, и его невозможно восстановить. Мы решили перейти к почтовому провайдеру, и я хотел бы отправить им все адреса электронной почты, которые у нас были на нашем сервере Zimbra. Учетных записей около 1300, поэтому я не могу вспомнить один за другим. У нас есть резервная копия каталога zimbra (/ opt / zimbra). Можно ли оттуда получить пользователей?
С уважением, Никос
Я экспериментировал с подобной ситуацией, чтобы получить пользователей из mysql, хранящегося на zimbra. Можно, но это долгая работа. Вы можете установить (в среде песочницы) зимбру с той же аварийной версией. Итак, вы переименовываете папку / opt / zimbra / db в / opt / zimbra / db-new и копируете / opt / zimbra / db с отказавшего сервера (или из резервной копии) по тому же пути. Это предоставит вам доступ к старому mysql / mariaDB, и вы можете проверить в zimbra db столбец «комментарии», чтобы получить список пользователей. имея этот список, на сервере песочницы переименуйте / opt / zimbra / db в / opt / zimbra / db-orig и / opt / zimbra / db-new в / opt / zimbra / db. Теперь используйте этот список, чтобы создать всех пользователей, используя массовый процесс, предоставленный zimbra здесь
https://wiki.zimbra.com/wiki/Bulk_Provisioning
когда у вас есть все пользователи (в базе данных без сообщений), вы должны снова получить доступ к базе данных zimbra и запустить запрос выбора, чтобы получить идентификатор пользователя и учетную запись электронной почты. С этой информацией снова переименуйте папку db ($ path / db в $ path / db-new и $ path / db-orig в $ path / db) и обновите все идентификаторы пользователей новым идентификатором, предоставленным zimbra при создании пользователи, использующие массовый процесс.
Теперь у вас есть все "почтовые ящики", правильно оцененные с идентификатором zimbra, сохраненным в новом ldap. Таким образом, вы можете получить доступ в этот момент к старым почтовым ящикам.
После этого вы решаете, как переместить информацию. Экспорт по учетной записи, включение imap подключения к новому серверу или что-то еще.
Я сказал вам, что это долгий процесс, но я использую это решение, и оно работает.
PD: сделайте постоянное резервное копирование на ldap, чтобы предотвратить подобные проблемы в будущем.
Примечание: перечисленные ниже команды применимы к ZCS 7.x Network Edition и могут потребовать изменения для работы с другими версиями. В частности, я считаю, что только Network Edition включает встроенное средство резервного копирования, хотя, надеюсь, один из других вариантов будет полезен.
Если сервер Zimbra LDAP все еще работает, вы сможете получить адресную информацию примерно так:
su - zimbra
/opt/zimbra/libexec/zmslapcat /tmp
egrep '^(zimbraMailAlias|zimbraMailDeliveryAddress):' /tmp/ldap.bak
Если сервер LDAP недоступен, но у вас есть доступ к тому местоположению, в которое Zimbra настроена для резервного копирования (по умолчанию /opt/zimbra/backup
), он должен иметь копию данных LDAP для каждого успешного резервного копирования. Использование:
find /opt/zimbra/backup -maxdepth 3 -name ldap -exec ls -ld {}/ldap.bak ';'
чтобы отобразить все доступные копии, а затем выберите самый последний файл. Затем вы можете использовать grep для извлечения адресов электронной почты из этого файла, как указано выше.
Если и сервер LDAP, и /opt/zimbra/backup
недоступны, может быть копия ldap.bak
в /opt/zimbra/data/ldap
. Я считаю, что эта копия обновляется только тогда, когда система исправлена.
Примечание. В зависимости от того, как именно произошел сбой системы, можно восстановить информацию LDAP с помощью db_recover
инструмент. Если этот тип восстановления необходим, вам следует открыть новый вопрос, поскольку он выходит за рамки этого, но вот некоторые отправные точки:
Источники: