Одним из наиболее распространенных случаев использования резервных данных является восстановление отдельных элементов - крайне важных писем, встреч, контактов и файлов, случайно удаленных пользователем. Благодаря использованию в 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.