Статистика использования лицензий Autodesk (сервер лицензий)
Делюсь опытом, может кому-то пригодится.
Внимание! Это материал про официальный сервер лицензий!
Когда-то у нас были сетевые лицензии, сначала бессрочные, потом годовые и был свой сетевой сервер лицензий.
Сам сервер был развёрнут на машине с windows, файл лицензий получали через кабинет Autodesk после продления.
Но, сейчас о другом. Нам захотелось получать статистику выдачи лицензий, т. к. куплено их было «впритык» и нужно было отслеживать целесообразность использования.
В инсталляторе идёт утилита lmutil.exe, запуск которой в командной строке выдаст статистику по ключам.
Это конечно круто, но недостаточно смотреть статистику, хочется её накапливать, в базе например. Через командную строку Windows делать такое непрактично. На выручку приходит наш любимый linux.
Для начала идём на сайт Autodesk и скачиваем Autodesk Network License Manager для Linux.
https://knowledge.autodesk.com/ru/search-result/caas/downloads/downloads/RUS/content/autodesk-network-license-manager-for-linux.html
Обратите внимание, поддерживаемые версии:
- Red Hat Enterprise Linux 8
- Red Hat Enterprise Linux 7
- SUSE Linux Enterprise 15 с пакетом обновления 2 (SP2)
- SUSE Linux Enterprise 15 с пакетом обновления 1 (SP1)
- SUSE Linux Enterprise 15
- SUSE Linux Enterprise 12 с пакетом обновления 4 (SP4)
Не смущайтесь, ниже я расскажу как это всё запустить на Ubuntu.
Если заглянуть в RPM пакет, то там распаковываются 4 файла в папку /opt/flexnetserver/
- LicenseAdministration.pdf
- adskflex
- lmgrd
- lmutil
Собственно, для наших целей потребуется только файл lmutil
Закидываем распакованный файл куда хотим на наш сервер, хоть в папку scripts
Ну, а дальше, небольшой фикс
Если при запуске утилиты она выдаёт ошибку
$ ./lmutil
bash: ./lmutil: Нет такого файла или каталога
ldd выдаёт результат
$ ldd lmutil
linux-vdso.so.1 (0x00007fff5b1de000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fbe36c6f000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fbe36b20000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fbe36b05000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbe36913000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fbe3690d000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fbe36903000)
/lib64/ld-lsb-x86-64.so.3 => /lib64/ld-linux-x86-64.so.2 (0x00007fbe36c98000)
Попробуйте сделать линк на so
sudo ln -s ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
и вам повезёт
$ ./lmutil
lmutil - Copyright (c) 1989-2021 Flexera. All Rights Reserved.
usage: lmutil lmborrow | lmborrowl -status
lmutil lmborrow | lmborrowl -purge
lmutil lmborrow | lmborrowl -purge -status
lmutil lmborrow | lmborrowl -clear
lmutil lmborrow | lmborrowl {all|vendor} dd-mmm-yyyy:[time]
lmutil lmborrow -return [-c licfile] [-d display_name] [-u username] [-h hostname] [-fqdn] [-vendor name] feature [-bv version]
...
А дальше дело техники
$ ./lmutil lmstat -f 85536ACD_2011_0F -c 40000@server_license
запрашиваем статистику по использованию лицензий для продукта AutoCAD 2011 у сервера server_license
Коды продуктов можно посмотреть тут: https://jtbworld.com/flexnet-flexlm-feature-codes-for-autodesk-applications-and-other-applications
Из Linux можно опрашивать несколько серверов LMTOOL, если нужно, а дальше нужно только распарсить вывод и сохранить его в базу.