Восстановление отдельных элементов из резервной копии Carbonio

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Одним из наиболее распространенных случаев использования резервных данных является восстановление отдельных элементов - крайне важных писем, встреч, контактов и файлов, случайно удаленных пользователем. Благодаря использованию в Carbonio транзакционного резервного копирования, каждый новый элемент в системе резервируется прямо во время своего создания и поэтому у администратора есть возможность относительно быстро и без проблем восстановить удаленное письмо, если оно всё ещё присутствует в резервной копии. В данной статье мы расскажем о том, как это сделать.

Данная инструкция подходит только для пользователей коммерческой версии Carbonio.

Процесс восстановления единичных элементов в Carbonio реализован таким образом, чтобы администратору требовалось знать минимум информации о нем. Так, для восстановления удаленного элемента потребуется знать только его идентификатор.

Идентификатор элемента является составляющей его метаданных. Узнать идентификатор существующих письма или встречи пользователь может просмотрев их исходный код.

Исходный код откроется в новой вкладке, а их идентификатор можно узнать в адресной строке. В нашем случае это 541 для встречи и 348 для письма

Нативный поиск элементов и их идентификаторов

Для поиска идентификатора элемента непосредственно в резервной копии можно использовать команду carbonio backup doItemSearch c указанием различных параметров, таких как:

  • backup_path - если вы ищете элемент не в основной папке резервного копирования Carbonio, здесь можно указать альтернативный путь

  • id - заранее зная идентификатор, можно найти элемент по нему

  • search_string - параметр для регистрозависимого поиска по текстовому запросу

  • type - здесь можно указать тип элемента

  • before - дата, до которой осуществляется поиск (dd/MM/yyyy HH:mm:ss)

  • after - дата, после которой осуществляется поиск (dd/MM/yyyy HH:mm:ss)

  • search_filter - позволяет искать элементы среди удаленных и неудаленных.

Для примера найдем письма, которые учетной записи user@carbonio.local, которые были получены или отправлены с 10:00 по 15:00 11 декабря 2023 года и пока что не удалены. 

carbonio backup doItemSearch user@carbonio.local type message after "11/12/2023 10:00:00" before "11/12/2023 15:00:00" search_filter not_deleted

Имя файла, которое указано в конце пути “Item File” и есть идентификатор искомого письма.

Для того, чтобы убедиться в том, что нашли именно то, что нужно, используйте команду carbonio backup getItem. С ее помощью можно получить ключевую информацию о хранимом элементе и понять, нашли вы то, что искали, или ошиблись. 

Альтернативные способы поиска элементов и их идентификаторов

Идентификатор также можно найти в логах. Каждое действие, в результате которого появляется новый элемент, записывается в /opt/zextras/mailbox.log и может быть найдено.

Пример соответствующей записи для создания новой встречи:

2023-12-11 11:02:21,670 INFO  [qtp739737502-77637://mail.carbonio.local/service/soap/CreateAppointmentRequest] [name=user@carbonio.local;mid=7;ip=192.168.100.62;oip=192.168.100.1;port=57912;ua=CarbonioWebClient - Firefox 120.0 (Windows)/23.11.0_ZEXTRAS_202311 carbonio 20231109-1136 FOSS;soapId=7b269dfd;] calendar - Adding CalendarItem: id=541, Message-ID="<380380423.112.1702292541594.JavaMail.zextras@carbonio.local>", folderId=10, subject="Тестовая встреча", UID=0e4d0b3e-6406-4ff4-a527-2e3b5a9d1833

Пример соответствующей записи для получения нового письма

2023-12-11 11:22:20,315 INFO  [LmtpServer-2] [name=user@carbonio.local;mid=7;ip=192.168.100.62;] mailop - Adding Message: id=542, Message-ID=<692938977.122.1702293739374.JavaMail.zextras@carbonio.local>, parentId=-1, folderId=2, folderName=Inbox acct=5552a648-e80d-404f-81aa-302756cc2b09

Зная имя отправителя, получателя, а также примерное время получения письма, найти его идентификатор в логах не составит особого труда.

Имея идентификатор учетной записи и номер элемента, можно без труда найти его в резервной копии. Так, полученное письмо будет лежать в файле /opt/carbonio-backup/accounts/5552a648-e80d-404f-81aa-302756cc2b09/items/42/542. Созданную встречу можно будет найти в /opt/carbonio-backup/accounts/5552a648-e80d-404f-81aa-302756cc2b09/items/41/541

Каждый из этих параметров является указателем пути к нужному элементу папке accounts в пути резервного копирования. 

В папке accounts все хранимые элементы находятся в папках, озаглавленных согласно идентификаторам пользователей.Идентификатор пользователя можно получить в командной строке, введя команду carbonio prov getAccount user@carbonio.local | grep -i zimbraid

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

В ее выводе будет содержаться 32-символьный идентификатор, который впоследствии будет использоваться для поиска элементов.

Просмотр этого идентификатора возможен и из консоли администратора. Для этого нужно перейти в раздел “Домены”, выбрать нужный домен, выбрать нужную вам учетную запись, кликнуть по ней и в поле ID можно будет обнаружить доступный для копирования идентификатор выбранной учетной записи.

В каждой из этих папок содержатся метаданные пользователей, а также разбитые по номерам элементы учетных записей.

Если же логи не сохранились, элементы могут быть найдены с применением стандартных утилит GNU/Linux для поиска по файлам. Все данные хранятся в виде обычного не шифрованного текста, а зная идентификатор учетной записи, можно значительно сузить диапазон поиска.

Восстановление элемента

Когда нужный элемент найден, можно его восстановить. Это делается при помощи команды carbonio backup doItemRestore. Как и в предыдущем случае для ее работы достаточно имени учетной записи, а также идентификатора нужного вам элемента.

Помимо обязательных параметров можно использовать и дополнительные среди них:

  • date - дата, по состоянию на которую следует восстановить удаленный элемент

  • restore_folder - имя папки, в которую следует восстановить удаленный элемент

К примеру, carbonio backup doItemRestore user@carbonio.local 542 date last restore_folder /Drafts восстановит последнюю сохраненную версию письма из резервной копии в папку “Черновики”.

Таким образом, процесс восстановления отдельного в Carbonio реализован достаточно удобно и позволяет администраторам в кратчайшие сроки восстанавливать удаленные письма, встречи, контакты и файлы для пользователей.

По вопросам тестирования, приобретения, предоставления лицензии и консультаций обращаться на почту sales@svzcloud.ru к эксклюзивному партнеру Zextras.

Источник: https://habr.com/ru/companies/Zextras/articles/780598/


Интересные статьи

Интересные статьи

В обновлении Carbonio 22.11 появилась возможность установки на дистрибутив RHEL8. Данный дистрибутив Linux очень популярен среди системных администраторов. Он отличается высокой стабильностью и долгим...
Для транспорта данных я почти всегда упаковываю их в JSON. Но вот беда: как правило, библиотеки для парсинга возвращают примитивные типы да объекты с массивами — всё то, что заложено самим форматом. Н...
Итак, я наконец-то добрался до кульминации своей идеи с библиотекой, включающей в себя логику выбора элементов из списка в адаптере. После решения, независимого от платформы, и библиотеки...
Уже давно известно, что делать бэкапы в SQL-дампы (используя pg_dump или pg_dumpall) – не самая хорошая идея. Для резервного копирования СУБД PostgreSQL лучше использовать команду pg_...
Похоже на то, что в ближайшем будущем не будет большой проблемой, если два человека говорят на разных языках. Конечно, знание дополнительного языка — это большой плюс, но случается так, что н...