Перейти к содержанию

Резервное копирование через BMWCLIENT

Назначение документа

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

Документ нужен администраторам организации.

См. также: Резервное копирование Облака

Что такое BMWCLIENT?

BMWCLIENT — это клиент для выполнения запросов к gRPC API. Основные функции клиента: резервное копирование и восстановление почтового ящика, облака, календарей, профилей пользователей и адресных книг.

Шаг 1. Предварительные настройки

Чтобы выполнять запросы к bmwclient, нужно добавить перечень IP и подсетей в веб-интерфейсе установщика:

  1. Откройте веб-интерфейс установщика http://server-adress:8888.

  2. Перейдите на вкладку Настройки → Настройки компонентов → Ограничение доступа к доменам.

    deployer_1

  3. Затем кликните по домену bmw.server-adress и нажмите кнопку редактировать edit_icon.

  4. Включите опци/ «Ограничить доступ к домену».

  5. Добавьте IP и подсети, под которыми разрешено обращаться к bmwclient'у. Чтобы разрешить всем IP и подсетям обращаться к bmwclient'у, добавьте IP-адрес 0.0.0.0/0. По умолчанию доступ к домену bmw.server-adress запрещен всем IP/подсетям.

    deployer_2

  6. Кликните по кнопке Сохранить.

  7. Перейдите к списку машин и включите опцию «Не показывать завершённые».

  8. Запустите следующие шаги:

    deployer_2

Примечание

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

Запросы к bmwclient'у можно будет выполнять, исходя из настроек IP и подсетей.

Шаг 2. Получить токен для выполнения запросов

  1. Перейдите на страницу biz.<сompany_domain> и авторизуйтесь в панели администратора.
  2. Перейдите по URL-адресу https://biz.<mail_domain>/oper/
  3. В меню слева выберите пункт Токены, на странице нажмите Добавить.

    image_1

  4. В окне добавления токена укажите дату истечения действия токена (согласно вашим внутренним политикам компании), а также комментарий.

    image_2

  5. Нажмите Добавить. Отобразится окно со сгенерированным токеном.

Внимание

Обязательно скопируйте и сохраните значение в поле «Токен:», его можно увидеть только один раз в отображаемом окне.

token_create_result

Авторизационный токен передаётся при каждом запросе к bmwclient'у.

Шаг 3. Скачать BMWCLIENT

  1. Перейдите на страницу biz.<сompany_domain> и авторизуйтесь в панели администратора.
  2. Перейдите по URL-адресу https://biz.<mail_domain>/oper/

  3. В меню слева выберите пункт Клиент и скачайте клиент, кликнув по bmwclient.

    get_client

Работа с bmwclient'ом происходит в командной строке (терминале). По умолчанию клиент скачивается в папку «Загрузки»/«Downloads».

console_start

Запуск клиента для Windows

Чтобы начать работу с bmwclient'ом под ОС Windows, не требуется дополнительных настроек и действий, достаточно шагов, выполненных выше.

Запуск клиента для Linux

Чтобы начать работать с bmwclient под ОС Linux, в терминале, в директории с bmwclient'ом, нужно запустить следующую команду:

chmod +x bmwclient

Запуск клиента для OS X

Чтобы начать работать с bmwclient под OS X, нужно выполнить следующие действия:

  1. В терминале, в директории с bmwclient'ом, нужно запустить последовательно команды:

    chmod +x bmwclient
    ./bmwclient -help
    
  2. Кликните «Отменить» во всплывающем уведомлении:

    mac_os_1

  3. Откройте «Системные настройки» и перейдите в раздел «Конфиденциальность и безопасность» на вашем компьютере.

  4. Кликните по кнопке Все равно разрешить для приложения bmwclient:

    mac_os_2

  5. В терминале снова запустите команду ./bmwclient -help.

  6. Кликните «Открыть» во всплывающем уведомлении:

    mac_os_3

Возможности BMWCLIENT и примеры запросов

Для каждого запроса необходимо обязательно передавать следующий список полей:

  • -server — доменное имя для запросов в BMWCLIENT, например bmw.on-premise.ru.
  • -tls — использует ли сервер шифрование (https). Флаг принимает два значения: true или false. По умолчанию считается, что шифрование используется.
  • -method — метод, который необходимо вызвать в gRPC API.
  • -token — токен для авторизации запросов к gRPC API, полученный на шаге 1.

Общие запросы к BMWCLIENT

Получить список доступных доменов

Выполните следующую команду:

./bmwclient -server bmw.%domain% -tls=false -method domains -token %token%

Пример запроса:

./bmwclient -server bmw.domain1.on-premise.ru \
  -method domains -token JleaQ8dNU0UBX6oaugaWmJ12vaaFp9Sa

Результат:

[INFO]: 2023/09/20 14:46:01 backend address is: bmw.domain1.on-premise.ru:443,
method is: domains
[INFO]: 2023/09/20 14:46:02 wm2.on-premise.ru
[INFO]: 2023/09/20 14:46:02 wm3.on-premise.ru
[INFO]: 2023/09/20 14:46:02 wm1.on-premise.ru
[INFO]: 2023/09/20 14:46:02 wm.on-premise.ru
[INFO]: 2023/09/20 14:46:02 auto.on-premise.ru
[INFO]: 2023/09/20 14:46:02 auto2.on-premise.ru

Получить список пользователей в домене

Выполните следующую команду:

./bmwclient -server bmw.%domain% -tls=false -method users \
  -token %token% -domain %domain%

-domain — домен, по которому нужно вывести список пользователей.

Пример запроса:

./bmwclient -server bmw.domain1.on-premise.ru -method users \
  -domain wm3.on-premise.ru -token JleaQ8dNU0UBX6oaugaWmJ12vaaFp9Sa

Результат:

[INFO]: 2023/09/20 14:48:23 backend address is: bmw.domain1.on-premise.ru:443,
method is: users
[INFO]: 2023/09/20 14:48:23 [Email:"3.3@wm3.on-premise.ru" RealName:"-"]

Примечание

Если в домене нет пользователей, результат выполнения запроса будет следующим:

[INFO]: 2023/10/09 12:25:36 backend address is: bmw.domain1.onprem.ru:443, 
method is: users
[FATAL]: 2023/10/09 12:25:37 failed to receive gRPC backend response: rpc error:
code = NotFound desc = users in domain not found.

Получить информацию о токене

Чтобы получить информацию о токене для авторизации запросов к gRPC API (-token), нужно выполнить следующую команду:

./bmwclient -server bmw.%domain% -tls=false -method tokenInfo -token %token%

Пример запроса:

./bmwclient -server bmw.domain1.on-premise.ru -method tokenInfo \
  -token JleaQ8dNU0UBX6oaugaWmJ12vaaFp9Sa

Результат:

[INFO]: 2023/09/20 18:16:19 backend address is: bmw.domain1.on-premise.ru:443,
method is: tokenInfo
[INFO]: 2023/09/20 18:16:20 uuid: 018ab1c0-91e3-774d-8005-1fd9b08b8f97
[INFO]: 2023/09/20 18:16:20 issued: 20 Sep 23 14:41 +0600
[INFO]: 2023/09/20 18:16:20 expires: 21 Sep 23 14:41 +0600
[INFO]: 2023/09/20 18:16:20 issuer: admin@admin.qdit
[INFO]: 2023/09/20 18:16:20 grants: 0
[INFO]: 2023/09/20 18:16:20 payload: {"comment":"for tests"}

Аналогичную информацию можно увидеть в интерфейсе администратора на странице «Бэкапы» «Токены» или по адресу: https://biz.<mail_domain>/oper/backups/tokens.

Получить информацию о версии API

./bmwclient -method getVersion -server bmw.%domain% -tls=true 

Пример запроса:

./bmwclient -method getVersion -server bmw.wm1.on-premise.ru -tls=true

Результат:

[INFO]: 2024/04/10 14:38:17 backend address is: bmw.wm1.on-premise.ru:443, method is: getVersion
[INFO]: 2024/04/10 14:38:18 server version: 3.9.6-8968244e, protocol version: 1.5
[INFO]: 2024/04/10 14:38:18 client version: 3.9.6-8968244e, protocol version: 1.5

Почта

Для каждого запроса необходимо обязательно передавать следующий список полей:

  • -server — доменное имя для запросов в BMWCLIENT, например bmw.on-premise.ru.
  • -tls — использует ли сервер шифрование (https). Флаг принимает два значения: true или false. По умолчанию считается, что шифрование используется.
  • -method — метод, который необходимо вызвать в gRPC API.
  • -token — токен для авторизации запросов к gRPC API, полученный на шаге 1.

Получить структуру почтового ящика

Выполните следующую команду:

./bmwclient -server bmw.%domain% -method mailboxStructure \
  -token %token% -email %email%

-email — email адрес почтового ящика, для которого выполняется запрос структуры.

Пример запроса:

./bmwclient -server bmw.domain1.on-premise.ru -method mailboxStructure \
  -domain wm2.on-premise.ru -token JleaQ8dNU0UBX6oaugaWmJ12vaaFp9Sa \
  -email n.gruzdev@wm2.on-premise.ru

Результат:

./bmwclient -server bmw.domain1.on-premise.ru -method mailboxStructure \
  -domain wm1.on-premise.ru -token GrhozHvEBAykHkNnNCjBfql2eEeiCaXq \
  -email n.gruzdev@wm1.on-premise.ru


[INFO]: 2023/09/27 14:13:56 backend address is: bmw.domain1.on-premise.ru:443,
method is: mailboxStructure
[INFO]: 2023/09/27 14:13:59 
[system:true type:"inbox" name:"Входящие" 6:18446744073709551615
 system:true type:"sent" name:"Отправленные" 1:500000 6:18446744073709551615 
 system:true type:"drafts" name:"Черновики" 1:500001 6:18446744073709551615 
 system:true type:"spam" name:"Спам" 1:950 6:18446744073709551615 
 system:true type:"trash" name:"Корзина" 1:500002 6:18446744073709551615
 system:true type:"deleted" name:"Удаленные" 1:500008 6:18446744073709551615]

Отрицательное значение в поле parent означает, что папка является корневой. Результат запроса отражает то, что видит пользователь в интерфейсе:

email_structure

Создать папку в почтовом ящике

Выполните следующую команду:

./bmwclient -server bmw.%domain% -method createMailboxFolder \
  -token %token% -email %email% -folderName %folderName% \
  -parentFolderID %parentid% -folderid %folderid%
  • -email — email адрес почтового ящика, в структуре которого создается папка.
  • -folderName — название папки.
  • -parentFolderID — цифровой ID родительской папки. Если значение не задано, то папка будет создана на верхнем уровне.
  • -folderid — цифровой ID создаваемой папки, не должен совпадать с ID существующих директорий. При отрицательном значении будет сгенерирован автоматически.

Пример запроса:

//Предварительно запросим структуру почтового ящика, 
//чтобы вычислить id папок для параметра -parentFolderID

./bmwclient -server bmw.domain1.on-premise.ru -method mailboxStructure \
  -domain wm1.on-premise.ru -token GrhozHvEBAykHkNnNCjBfql2eEeiCaXq \
  -email n.gruzdev@wm1.on-premise.ru


[INFO]: 2023/09/27 14:13:56 backend address is: bmw.domain1.on-premise.ru:443,
method is: mailboxStructure
[INFO]: 2023/09/27 14:13:59 
[system:true type:"inbox" name:"Входящие" 6:18446744073709551615
 system:true type:"sent" name:"Отправленные" 1:500000 6:18446744073709551615 
 system:true type:"drafts" name:"Черновики" 1:500001 6:18446744073709551615 
 system:true type:"spam" name:"Спам" 1:950 6:18446744073709551615 
 system:true type:"trash" name:"Корзина" 1:500002 6:18446744073709551615
 system:true type:"deleted" name:"Удаленные" 1:500008 6:18446744073709551615]

//Создадим папку «Partners» в папке «Спам» (id = 950)

./bmwclient -server bmw.domain1.on-premise.ru -method createMailboxFolder \
  -domain wm1.on-premise.ru -token GrhozHvEBAykHkNnNCjBfql2eEeiCaXq \
  -email n.gruzdev@wm1.on-premise.ru -folderName Partners \
  -parentFolderID 950 -folderid -1  

Результат:

[INFO]: 2023/09/27 13:20:40 backend address is:
bmw.domain1.on-premise.ru:443, method is: createMailboxFolder
[INFO]: 2023/09/27 13:20:41 created folder id: 77777

Создать полную резервную копию ящика

Чтобы создать полную резервную копию почтового ящика и сохранить результат в директорию, нужно выполнить следующую команду:

./bmwclient -server bmw.%domain% -method fullBackup -token %token% \
  -email %email% -endts %end_timestamp% -savePath backups -zip
  • -email — email-адрес почтового ящика, для которого снимается резервная копия.
  • -endts — дата и время, до которого необходимо выполнить резервную копию. Передается в формате UNIX timestamp. Значение по умолчанию: текущее время.
  • -savePath — путь на диске, куда необходимо сохранить резервную копию почтового ящика.
  • -byFolders — создать в структуре бэкапа дерево папок, аналогичное почтовому ящику. Без этого параметра на диск сохраняются только письма.
  • -save — сохранить результат резервного копирования на диск в директорию, без сжатия.
  • -zip — сжать в zip-архив результаты резервного копирования и сохранить на диск.

Флаги -save и -zip взаимоисключающие, их нельзя использовать вместе в одном запросе.

Пример запроса с параметрами -save и -byFolders:

./bmwclient -server bmw.domain1.on-premise.ru -method fullBackup \
  -token JleaQ8dNU0UBX6oaugaWmJ12vaaFp9Sa -email n.gruzdev@wm2.on-premise.ru \
  -save -savePath ./backups -byFolders -endts 1695212742

В примере, в параметре -savePath, указан путь относительно папки, в которой находится bmwclient.

Результат:

[INFO]: 2023/09/20 18:25:42 backend address is: bmw.domain1.on-premise.ru:443,
method is: fullBackup
[INFO]: 2023/09/20 18:25:42 save path is
backups/n.gruzdev@wm2.on-premise.ru-1695212742
[INFO]: 2023/09/20 18:25:43 total messages in mailbox: 1

Результат резервного копирования в папке backups/n.gruzdev@wm2.on-premise.ru-1695212742.

-save -byFolders

Пример запроса с параметрами -zip и -byFolders:

./bmwclient -server bmw.domain1.on-premise.ru -method fullBackup \
  -token JleaQ8dNU0UBX6oaugaWmJ12vaaFp9Sa -email n.gruzdev@wm2.on-premise.ru \
  -zip -savePath ./backups -byFolders

Результат:

[INFO]: 2023/09/20 18:25:42 backend address is: bmw.domain1.on-premise.ru:443,
method is: fullBackup
[INFO]: 2023/09/20 18:25:42 save path is backups/
[INFO]: 2023/09/20 18:25:43 total messages in mailbox: 1

При комбинации параметров -zip и -byFolders в архиве сохраняются папки, в которых есть письма:

-zip -byFolders

Создать инкрементную резервную копию ящика

Чтобы создать инкрементную резервную копию почтового ящика и сохранить результат в директорию, нужно выполнить следующую команду:

./bmwclient -server bmw.%domain% -method incrementalBackup \
  -token %token% -email %email% -startts %start_timestamp% \
  -endts %end_timestamp% -savePath result -zip
  • -email — email-адрес почтового ящика, для которого снимается резервная копия.
  • -startts — дата и время, от которого необходимо выполнить резервную копию. Передается в формате UNIX timestamp.
  • -endts — дата и время, до которого необходимо выполнить резервную копию. Передается в формате UNIX timestamp. Значение по умолчанию: текущее время.
  • -savePath — путь на диске, куда необходимо сохранить резервную копию почтового ящика.
  • -byFolders — создать в структуре бэкапа дерево папок, аналогичное почтовому ящику. Без этого параметра на диск сохраняются только письма.
  • -save — сохранить результат резервного копирования на диск в директорию, без сжатия.
  • -zip — сжать в zip-архив результаты резервного копирования и сохранить на диск.
  • -patchExist — применить изменения из инкрементальной копии к уже существующей копии. Работает только вместе с флагами -save и -byFolders. Если флаг активен, то будет изменён бэкап в директории -savePath

Флаги -save и -zip взаимоисключающие, их нельзя использовать вместе в одном запросе.

Пример запроса с параметром -patchExist:

// Например, сначала создадим полную резервную копию почтового ящика
// до временной точки 1695212712

./bmwclient -server bmw.domain1.on-premise.ru -method fullBackup \
  -endts 1695212712 -token JleaQ8dNU0UBX6oaugaWmJ12vaaFp9Sa \
  -email n.gruzdev@wm2.on-premise.ru -save -savePath ./backups -byFolders

[INFO]: 2023/09/20 18:25:42 backend address is: bmw.domain1.on-premise.ru:443,
method is: fullBackup
[INFO]: 2023/09/20 18:25:42 
save path is backups/n.gruzdev@wm2.on-premise.ru-1695212742
[INFO]: 2023/09/20 18:25:43 total messages in mailbox: 1

// Теперь от временной точки 1695212712 выполним инкрементное
// резервное копирование

./bmwclient -server bmw.domain1.on-premise.ru -method incrementalBackup \
  -startts 1695212712 -token JleaQ8dNU0UBX6oaugaWmJ12vaaFp9Sa \
  -email n.gruzdev@wm2.on-premise.ru -save \
  -savePath ./backups/n.gruzdev@wm2.on-premise.ru-1695212712 \
  -patchExist -byFolders

Результат:

[INFO]: 2023/09/20 18:46:07 backend address is: bmw.domain1.on-premise.ru:443,
method is: incrementalBackup
[INFO]: 2023/09/20 18:46:08 
save path is ./backups/n.gruzdev@wm2.on-premise.ru-1695212712
[INFO]: 2023/09/20 18:46:09 2

Восстановить почтовый ящик

Внимание

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

Перед восстановлением почтового ящика необходимо распаковать и сохранить в одну директорию результаты полного резервного копирования и инкрементальных копий. Затем нужно выполнить следующую команду:

./bmwclient -server bmw.%domain% -method restoreMailbox \
  -token %token% -email %email% -readPath %backups_dir%
  • -email — email-адрес почтового ящика, для которого выполняется восстановление.
  • -readPath — папка, в которой находятся полные и инкрементальные копии. Если в данном параметре указан путь до zip-архива, он будет автоматически распакован в папку, указанную в параметре -extractPath.
  • -exctractPath — папка, в которую будет распакован zip-архив с бэкапом. Если параметр не задан, произойдет распаковка в дочернюю папку.

Пример запроса:

./bmwclient -server bmw.domain1.on-premise.ru -method restoreMailbox \
  -token JleaQ8dNU0UBX6oaugaWmJ12vaaFp9Sa -email n.gruzdev@wm2.on-premise.ru \
  -readPath ./backups/n.gruzdev@wm2.on-premise.ru-1695212742

Результат:

[INFO]: 2023/09/21 10:19:09 backend address is: bmw.domain1.on-premise.ru:443,
 method is: restoreMailbox
[INFO]: 2023/09/21 10:19:09 
backups/n.gruzdev@wm2.on-premise.ru-1695212742\/xindex.main.xlogdb.1
[INFO]: 2023/09/21 10:19:12 got response from gRPC backend,
 message: result:"restored"

Восстановить письмо в папку

Чтобы восстановить письмо в папку почтового ящика, нужно выполнить следующую команду:

./bmwclient -server bmw.%domain% -method restoreEml -token %token% \
  -email %email% -folderid %folder ID% -lettername %letter name% \
  -readPath %read_path%
  • -email — email-адрeс почтового ящика, для которого выполняется процедура восстановления письма.
  • -folderid — внутренний id папки, в которую необходимо восстановить письмо; id папок можно получить с помощью метода mailboxStructure; по умолчанию восстановление произойдет в папку «Входящие».
  • -lettername — наименование eml-файла на диске.
  • -readPath — путь до eml-файла на диске, то есть путь до файла, указанного в параметре -lettername.

Пример запроса:

./bmwclient -server bmw.domain1.on-premise.ru -method restoreEml \
  -token JleaQ8dNU0UBX6oaugaWmJ12vaaFp9Sa -email n.gruzdev@wm2.on-premise.ru \
  -lettername 16952131010821184043 -readPath ./backups

Результат:

[INFO]: 2023/09/20 19:00:46 backend address is: bmw.domain1.on-premise.ru:443,
method is: restoreEml
[INFO]: 2023/09/20 19:00:47 Email 16952131010821184043 
restored successfully: 16952148481817229160

В этом примере письмо восстановится в папку «Входящие», так как параметр folderid не был передан.

Профили пользователей

Для каждого запроса необходимо обязательно передавать следующий список полей:

  • -server — доменное имя для запросов в BMWCLIENT, например bmw.on-premise.ru.
  • -tls — использует ли сервер шифрование (https). Флаг принимает два значения: true или false. По умолчанию считается, что шифрование используется.
  • -method — метод, который необходимо вызвать в gRPC API.
  • -token — токен для авторизации запросов к gRPC API, полученный на шаге 1.

Получить список пользователей, профили которых были изменены после указанного времени

Выполните следующую команду:

./bmwclient -method profileList -server bmw.%domain% \
  -tls=false -token %token% -startts %start_timestamp%

-startts — дата и время изменения профилей пользователей. Передается в формате UNIX timestamp.

Пример запроса:

./bmwclient -method profileList -server bmw.wm1.on-premise.ru \
  -startts 1633595513 -token 2gwwahxcdmAV6e5ArEtedsvp   

Результат:

[INFO]: 2024/04/10 14:46:44 backend address is: bmw.wm1.on-premise.ru:443, method is: profileList
[INFO]: 2024/04/10 14:46:45 test_login_qdqm0ext@wm1.on-premise.ru, 1709155933
[INFO]: 2024/04/10 14:46:45 test_login_kjymg1yn@wm1.on-premise.ru, 1709155934
[INFO]: 2024/04/10 14:46:45 g.test@wm1.on-premise.ru, 1709204212
[INFO]: 2024/04/10 14:46:45 1slp_test@wm1.on-premise.ru, 1709207542

Создать резервную копию всех профилей пользователей, измененных после указанного времени

Выполните следующую команду:

./bmwclient -method profileDump -savePath %backups_dir% \
  -server bmw.%domain% -startts %start_timestamp% \
  -token %token% -zip
  • -startts — дата и время, от которого необходимо выполнить резервную копию. Передается в формате UNIX timestamp.
  • -savePath — путь на диске, куда необходимо сохранить резервную копию.
  • -save — сохранить результат резервного копирования на диск в директорию, без сжатия.
  • -zip — сжать в zip-архив результаты резервного копирования и сохранить на диск.

Флаги -save и -zip взаимоисключающие, их нельзя использовать вместе в одном запросе.

Пример запроса с флагом -zip:

./bmwclient -method profileDump -savePath ./result \
  -server bmw.wm1.on-premise.ru -startts 1633595513 \
  -token 2gwwahxcdmAe5ArEtedsvp -zip

Результат:

[INFO]: 2024/04/11 11:17:55 backend address is: bmw.wm1.on-premise.ru:443, method is: profileDump

В папке ./result появился архив profile-1712812676.zip, в котором сохранены профили пользователей измененных после timestamp = 1633595513.

Создать резервную копию профиля пользователя

Выполните следующую команду:

./bmwclient -email %email% -method profileDumpByUser \
  -savePath %backups_dir% -server bmw.%domain% -startts %start_timestamp% \
  -token %token% -save
  • -email — email-адрес почтового ящика, для которого снимается резервная копия.
  • -startts — дата и время, от которого необходимо выполнить резервную копию. Передается в формате UNIX timestamp.
  • -savePath — путь на диске, куда необходимо сохранить резервную копию.
  • -save — сохранить результат резервного копирования в файл на диск.

Пример запроса:

./bmwclient -email test04@wm1.on-premise.ru -method profileDumpByUser \
  -savePath ./result -server bmw.wm1.on-premise.ru -token 2gwwahxcdmAV6e5ArEtedsvp

Результат:

[INFO]: 2024/04/11 11:21:41 backend address is: bmw.wm1.on-premise.ru:443, method is: profileDumpByUser

В папке ./result появился файл: test04@wm1.on-premise.ru-1712067245.profile.

Восстановить профиль одного пользователя

Внимание

При восстановлении профиля пользователя его текущая версия полностью удаляется!

Выполните следующую команду:

./bmwclient -email %email% -method profileRestoreByUser \
  -readPath %backups_file% -server bmw.%domain%  \
  -token %token%
  • -email — email-адрес пользователя, для которого выполняется процедура восстановления.
  • -readPath — путь до файла с резервной копией на вашем диске.

Пример запроса:

./bmwclient -email test04@wm1.on-premise.ru -method profileRestoreByUser \
-readPath ./result/test04@wm1.on-premise.ru-1712067245.profile \
-server bmw.wm1.on-premise.ru -token 2gwwahxcdmAV6TeQArEtedsvp

Результат:

[INFO]: 2024/04/11 11:27:18 backend address is: bmw.wm1.on-premise.ru:443, method is: profileRestoreByUser

Восстановить все профили пользователей из резервной копии

Внимание

При восстановлении профиля пользователя его текущая версия полностью удаляется!

Выполните следующую команду:

./bmwclient -method profileRestore -readPath %backups_file/dir%\
  -server bmw.%domain% -token %token%
  • -readPath — путь до файла или директории с резервной копией на вашем диске.

Пример запроса для резервной копии в архиве:

./bmwclient -method profileRestore -readPath ./result/profile-1712812675.zip \
  -server bmw.wm1.on-premise.ru -token 2gwwahxcdmAnUe5ArEtedsvp

Результат:

[INFO]: 2024/04/11 11:33:29 backend address is: bmw.wm1.on-premise.ru:443, method is: profileRestore
[INFO]: 2024/04/11 11:33:29 restoring from file 'apet2806@ex.on-premise.ru-1712650718.profile'
[INFO]: 2024/04/11 11:33:30 <apet2806@ex.on-premise.ru> profile restored
[INFO]: 2024/04/11 11:33:30 restoring from file 'apet14090@ex.on-premise.ru-1712650690.profile'
[INFO]: 2024/04/11 11:33:30 <apet14090@ex.on-premise.ru> profile restored
[INFO]: 2024/04/11 11:33:30 restoring from file 'apet28063@ex.on-premise.ru-1712650708.profile'
[INFO]: 2024/04/11 11:33:30 <apet28063@ex.on-premise.ru> profile restored
[INFO]: 2024/04/11 11:33:30 restoring from file 'apet2707@ex.on-premise.ru-1712650684.profile'
[INFO]: 2024/04/11 11:33:30 <apet2707@ex.on-premise.ru> profile restored

Личные адресные книги

Для каждого запроса необходимо обязательно передавать следующий список полей:

  • -server — доменное имя для запросов в BMWCLIENT, например bmw.on-premise.ru.
  • -tls — использует ли сервер шифрование (https). Флаг принимает два значения: true или false. По умолчанию считается, что шифрование используется.
  • -method — метод, который необходимо вызвать в gRPC API.
  • -token — токен для авторизации запросов к gRPC API, полученный на шаге 1.

Получить список личных адресных книг, измененных после указанного времени

Выполните следующую команду:

./bmwclient -method personalABList -server bmw.%domain% -tls=false \
  -token %token% -startts %start_timestamp%

-startts — дата и время изменения файлов у пользователей. Передается в формате UNIX timestamp.

Пример запроса:

./bmwclient -method personalABList -server bmw.wm1.on-premise.ru \
  -startts 1633595513 -token 2gwwahxcdmAV6e5ArEtedsvp   

Результат:

[INFO]: 2024/04/10 14:46:44 backend address is: bmw.wm1.on-premise.ru:443, method is: personalABList
[INFO]: 2024/04/10 14:46:45 test_login_qdqm0ext@wm1.on-premise.ru, 1709155933
[INFO]: 2024/04/10 14:46:45 test_login_kjymg1yn@wm1.on-premise.ru, 1709155934
[INFO]: 2024/04/10 14:46:45 g.test@wm1.on-premise.ru, 1709204212
[INFO]: 2024/04/10 14:46:45 1slp_test@wm1.on-premise.ru, 1709207542

Создать резервную копию всех личных адресных книг, измененных после указанного времени

Выполните следующую команду:

./bmwclient -domain %domain% -method personalABDump \
  -savePath %backups_dir% -server bmw.%domain% -startts %start_timestamp% \
  -token %token% -zip
  • -startts — дата и время, от которого необходимо выполнить резервную копию. Передается в формате UNIX timestamp.
  • -savePath — путь на диске, куда необходимо сохранить резервную копию.
  • -save — сохранить результат резервного копирования на диск в директорию, без сжатия.
  • -zip — сжать в zip-архив результаты резервного копирования и сохранить на диск.

Флаги -save и -zip взаимоисключающие, их нельзя использовать вместе в одном запросе.

Пример запроса с флагом -zip:

./bmwclient -method personalABDump -savePath ./result \
  -server bmw.wm1.on-premise.ru -startts 1633595513 -token 2gwwahxcdmAV6tedsvp -zip

Результат:

[INFO]: 2024/04/11 11:37:59 backend address is: bmw.wm1.on-premise.ru:443, method is: personalABDump

В папке ./result появился архив: personalab-1712813880.zip.

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

Выполните следующую команду:

./bmwclient -email %email% -method personalABDumpByUser \
  -savePath %backups_dir% -server bmw.%domain% -startts %start_timestamp% \
  -token %token% -save
  • -email — email-адрес пользователя, для которого снимается резервная копия.
  • -startts — дата и время, от которого необходимо выполнить резервную копию. Передается в формате UNIX timestamp.
  • -savePath — путь на диске, куда необходимо сохранить резервную копию.
  • -save — сохранить результат резервного копирования на диск.

Пример запроса:

./bmwclient -email test04@wm1.on-premise.ru -method personalABDumpByUser \
 -savePath ./result -server bmw.wm1.on-premise.ru -token 2gwwahxcdmAV6TeQ -save

Результат:

[INFO]: 2024/04/11 11:41:16 backend address is: bmw.wm1.on-premise.ru:443, method is: personalABDumpByUser

В папке ./result появился файл: test04@wm1.on-premise.ru.personalab.

Восстановить личную адресную книги одного пользователя

Внимание

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

Выполните следующую команду:

./bmwclient -email %email% -method personalABRestoreByUser \
  -readPath %backups_file% -server bmw.%domain%  \
  -token %token%
  • -email — email адрeс почтового ящика, в который будет восстановлена адресная книга. Если не указан, то адресная книга будет восстановлена в email, полученный из названия файла.
  • -readPath — путь до файла с резервной копией на вашем диске.

Пример запроса:

./bmwclient -email test04@wm1.on-premise.ru -method personalABRestoreByUser \
  -readPath ./result/test04@wm1.on-premise.ru.personalab \
  -server bmw.wm1.on-premise.ru -token 2gwwahxcdmAV

Результат:

[INFO]: 2024/04/11 11:48:18 backend address is: bmw.wm1.on-premise.ru:443, method is: personalABRestoreByUser

Восстановить все личные адресные книги из резервной копии

Внимание

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

Выполните следующую команду:

./bmwclient -method personalABRestore -readPath %backups_dir/file%\
  -server bmw.%domain% -token %token%
  • -readPath — путь до файла или директории с резервной копией на вашем диске.

Пример запроса для резервной копии в архиве:

./bmwclient -method personalABRestore -readPath ./result/personalab-1712813889.zip \
  -server bmw.wm1.on-premise.ru -token 2gwwahxcdmAV6TeQmG

Результат:

[INFO]: 2024/04/11 11:52:09 backend address is: bmw.wm1.on-premise.ru:443, method is: personalABRestore
[INFO]: 2024/04/11 11:52:10 restoring from file 'attest15@ex.on-premise.ru.personalab'
[INFO]: 2024/04/11 11:52:10 <attest15@ex.on-premise.ru> personal address book restored
[INFO]: 2024/04/11 11:52:10 restoring from file 'attest16@ex.on-premise.ru.personalab'
[INFO]: 2024/04/11 11:52:10 <attest16@ex.on-premise.ru> personal address book restored
[INFO]: 2024/04/11 11:52:10 restoring from file 'attest17@ex.on-premise.ru.personalab'
[INFO]: 2024/04/11 11:52:10 <attest17@ex.on-premise.ru> personal address book restored
[INFO]: 2024/04/11 11:52:10 restoring from file 'attest14@ex.on-premise.ru.personalab'
[INFO]: 2024/04/11 11:52:10 <attest14@ex.on-premise.ru> personal address book restored

Общие адресные книги

Для каждого запроса необходимо обязательно передавать следующий список полей:

  • -server — доменное имя для запросов в BMWCLIENT, например bmw.on-premise.ru.
  • -tls — использует ли сервер шифрование (https). Флаг принимает два значения: true или false. По умолчанию считается, что шифрование используется.
  • -method — метод, который необходимо вызвать в gRPC API.
  • -token — токен для авторизации запросов к gRPC API, полученный на шаге 1.

Получить список общих контактов, измененных после указанного времени

Выполните следующую команду:

./bmwclient -method commonABList -server bmw.%domain% -tls=false \
  -token %token% -startts %start_timestamp%

-startts — дата и время изменения файлов у пользователей. Передается в формате UNIX timestamp.

Пример запроса:

./bmwclient -method commonABList -server bmw.wm1.on-premise.ru \
  -startts 1633595513 -token 2gwwahxcdmAV6e5ArEtedsvp   

Результат:

[INFO]: 2024/04/10 14:46:44 backend address is: bmw.wm1.on-premise.ru:443, method is: commonABList
[INFO]: 2024/04/10 14:46:45 test_login_qdqm0ext@wm1.on-premise.ru, 1709155933
[INFO]: 2024/04/10 14:46:45 test_login_kjymg1yn@wm1.on-premise.ru, 1709155934
[INFO]: 2024/04/10 14:46:45 g.test@wm1.on-premise.ru, 1709204212
[INFO]: 2024/04/10 14:46:45 1slp_test@wm1.on-premise.ru, 1709207542

Создать резервную копию всех общих контактов домена, измененных после указанного времени

Выполните следующую команду:

./bmwclient -domain %domain% -method commonABDump \
  -savePath %backups_dir% -server bmw.%domain% -startts %start_timestamp% \
  -token %token% -zip
  • -startts — дата и время, от которого необходимо выполнить резервную копию. Передается в формате UNIX timestamp.
  • -savePath — путь на диске, куда необходимо сохранить резервную копию.
  • -save — сохранить результат резервного копирования на диск в директорию, без сжатия.
  • -zip — сжать в zip-архив результаты резервного копирования и сохранить на диск.

Флаги -save и -zip взаимоисключающие, их нельзя использовать вместе в одном запросе.

Пример запроса с флагом -zip:

./bmwclient -domain wm1.on-premise.ru -method commonABDump -savePath ./result \
  -server bmw.wm1.on-premise.ru -startts 1633595513 -token 2gwwahxcdmAtedsvp -zip

Результат:

[INFO]: 2024/04/10 16:41:51 backend address is: bmw.wm1.on-premise.ru:443, method is: commonABDump

В папке ./result появился архив: commonab-wm1.on-premise.ru-1712814930.zip.

Создать резервную копию одного контакта из общей адресной книги домена

Выполните следующую команду:

./bmwclient -domain %domain% -email %email% -method commonABDumpByUser \
  -savePath %backups_dir% -server bmw.%domain% -startts %start_timestamp% \
  -token %token% -save
  • -email — email-адрес контакта из общей адресной книги.
  • -startts — дата и время, от которого необходимо выполнить резервную копию. Передается в формате UNIX timestamp.
  • -savePath — путь на диске, куда необходимо сохранить резервную копию.
  • -save — сохранить файл с результатом резервного копирования на диск.

Пример запроса:

./bmwclient -domain wm1.on-premise.ru -email 123@wm1.on-premise.ru \
  -method commonABDumpByUser -savePath ./result \
  -server bmw.wm1.on-premise.ru -startts 1633595513 -token 2gwwahxcdmAtedsvp -save

Результат:

[INFO]: 2024/04/10 17:08:30 backend address is: bmw.wm1.on-premise.ru:443, method is: commonABDumpByUser

На диск сохраняется следующий файл: 123@wm1.on-premise.ru.commonab.

Восстановить один контакт в общую адресную книгу домена

Выполните следующую команду:

./bmwclient -domain %domain% -email %email% -method commonABRestoreByUser \
  -readPath %backups_file% -server bmw.%domain%  \
  -token %token%
  • -email — основной email контакта. Если не указан, то адресная книга будет восстановлена в email, полученный из названия файла.
  • -readPath — путь до файла с резервной копией на вашем диске.

Пример запроса:

./bmwclient -domain wm1.on-premise.ru -email 1234@wm1.on-premise.ru \
-method commonABRestoreByUser -readPath ./result/1234@wm1.on-premise.ru.commonab \
-server bmw.wm1.on-premise.ru -token 2gwwahxcdmAV6TeQm

Результат:

[INFO]: 2024/04/11 20:51:20 backend address is: bmw.wm1.on-premise.ru:443, method is: commonABRestoreByUser

Восстановить все контакты в общую адресную книгу домена

Выполните следующую команду:

./bmwclient -method commonABRestore -readPath %backups_dir/file% \
  -server bmw.%domain% -token %token%
  • -readPath — путь до файла или директории с резервной копией на вашем диске.

Пример запроса для резервной копии в архиве:

./bmwclient -domain wm1.on-premise.ru -method commonABRestore \
  -readPath ./result/commonab-wm1.on-premise.ru-1712814930.zip \
  -server bmw.wm1.on-premise.ru -token 2gwwahxcdmAV6TeQmG

Результат:

[INFO]: 2024/04/11 20:57:19 backend address is: bmw.wm1.on-premise.ru:443, method is: commonABRestore
[INFO]: 2024/04/11 20:57:20 restoring from file 'san@wm1.on-premise.ru.commonab'
[INFO]: 2024/04/11 20:57:20 got response from gRPC backend, message:
[INFO]: 2024/04/11 20:57:20 restoring from file 'stepan@wm1.on-premise.ru.commonab'
[INFO]: 2024/04/11 20:57:21 got response from gRPC backend, message:
[INFO]: 2024/04/11 20:57:21 restoring from file 'solovey@wm1.on-premise.ru.commonab'
[INFO]: 2024/04/11 20:57:21 got response from gRPC backend, message:
[INFO]: 2024/04/11 20:57:21 restoring from file 'rogov@wm1.on-premise.ru.commonab'

Календари

Для каждого запроса необходимо обязательно передавать следующий список полей:

  • -server — доменное имя для запросов в BMWCLIENT, например bmw.on-premise.ru.
  • -tls — использует ли сервер шифрование (https). Флаг принимает два значения: true или false. По умолчанию считается, что шифрование используется.
  • -method — метод, который необходимо вызвать в gRPC API.
  • -token — токен для авторизации запросов к gRPC API, полученный на шаге 1.

Получить список пользователей, календари которых были изменены после указанного времени

Выполните следующую команду:

./bmwclient -method calendarUsers -server bmw.%domain% \
  -tls=false -token %token% -startts %start_timestamp%

-startts — дата и время изменения файлов у пользователей. Передается в формате UNIX timestamp.

Пример запроса:

./bmwclient -method calendarUsers -server bmw.wm1.on-premise.ru \
  -startts 1633595513 -token 2gwwahxcdmAV6e5ArEtedsvp   

Результат:

[INFO]: 2024/04/10 14:46:44 backend address is: bmw.wm1.on-premise.ru:443, method is: calendarUsers
[INFO]: 2024/04/10 14:46:45 test_login_qdqm0ext@wm1.on-premise.ru, 1709155933
[INFO]: 2024/04/10 14:46:45 test_login_kjymg1yn@wm1.on-premise.ru, 1709155934
[INFO]: 2024/04/10 14:46:45 g.test@wm1.on-premise.ru, 1709204212
[INFO]: 2024/04/10 14:46:45 1slp_test@wm1.on-premise.ru, 1709207542

Создать резервную копию всех календарей пользователя

Выполните следующую команду:

./bmwclient -email %email% -method calendarDumpByUser \
  -savePath %backups_dir% -server bmw.%domain% -startts %start_timestamp% \
  -token %token% -zip
  • -email — email-адрес пользователя, для которого снимается резервная копия.
  • -startts — дата и время, от которого необходимо выполнить резервную копию. Передается в формате UNIX timestamp.
  • -savePath — путь на диске, куда необходимо сохранить резервную копию календаря.
  • -save — сохранить результат резервного копирования на диск в директорию, без сжатия.
  • -zip — сжать в zip-архив результаты резервного копирования и сохранить на диск.

Флаги -save и -zip взаимоисключающие, их нельзя использовать вместе в одном запросе.

Пример запроса с флагом -zip:

./bmwclient -email st_884@wm1.on-premise.ru -method calendarDumpByUser -savePath ./result \
  -server bmw.wm1.on-premise.ru -startts 1633595513 -token 2gwwahxcd5ArEtedsvp -zip

Результат:

[INFO]: 2024/04/10 16:25:40 backend address is: bmw.wm1.on-premise.ru:443, method is: calendarDumpByUser
[INFO]: 2024/04/10 16:25:40 save path is result\calendar-st_884@wm1.on-premise.ru-1712744740.zip

Восстановить все календари пользователя

Выполните следующую команду:

./bmwclient -email %email% -method calendarRestoreByUser \
  -readPath %backups_dir% -server bmw.%domain% -token %token%
  • -email — email-адрес пользователя, для которого производится восстановление.
  • -readPath — путь до архива или папки с резервной копией календарей.

Пример запроса для архива с бэкапом:

./bmwclient -email st_884@wm1.on-premise.ru -method calendarRestoreByUser \
  -readPath ./result/calendar-st_884@wm1.on-premise.ru-1712744740.zip \
  -server bmw.wm1.on-premise.ru -token 2gwwahxcdmAV6TeQmGanUe5ArEtedsvp

Результат:

[INFO]: 2024/04/10 16:32:33 backend address is: bmw.wm1.on-premise.ru:443, method is: calendarRestoreByUser