Добър ден, уважаеми читатели.
Ще бъда изключително кратък и ще разделя статията на точки.
Проблеми от организационен характер
Броят на потребителите на софтуерния продукт AutoCAD надвишава броя на локалните мрежови лицензи.
- Броят на специалистите, работещи в ПО AutoCAD, не се регулира с никакъв вътрешен документ.
- Въз основа на точка №1, отказът за инсталиране на програмата е почти невъзможен.
- Грешната организация на работата води до недостиг на лицензи, което предизвиква заявки и обаждания от абонати в отдела за информационни технологии относно този проблем.
Технически проблеми
- Липса на средства за преглед на списъка с използвани лицензи.
Варианти на решение
- Готово решение, поддържано от производителя на ПО, позволяващо на потребителите самостоятелно да преглеждат списъка с използвани лицензи.
- Разработка на всяко подходящо решение за генериране на отчет за работата на лицензионния мениджър под формата на уеб страница.
Прието решение и реализиране
Техническо задание
- Възможност за спестяване на лицензи за ОС
- Извеждане на списъка с потребители, използващи лицензи
Реализация на работата на лицензионния мениджър
Прието решение е самостоятелно да се реализира необходимата функция. Процедурата за изпълнение:
- Инсталация и настройка на CentOS 7 на виртуализационен сървър
- Инсталация и стартиране на Autodesk Network License Manager за Linux
- Настройка на автостартиране на утилитата при рестарт на ОС
- Настройка на файл с параметри (за него ще напиша по-долу)
- Инсталация на локален уеб сървър и PHP
Реализация на извеждане на списъка с използвани лицензи
- Създаване на .sh файл с съдържанието, приведено по-долу:
#! /bin/bash /opt/flexnetserver/lmutil lmstat -a -c [путь к файлу .lic]> "/var/www/html/log.txt"Той се поставя в удобна директория и се настройва като изпълняем файл.
С помощта на тази команда се извежда статусът на лицензионния мениджър в файл log.txt
- Използвах командата
watch -n 5 [път до създадени в пункт №1 .sh файла]Това позволява на всеки 5 секунди да се извиква предишно създаденият bash скрипт.
- В директорията log.txt от пункт №1 се поставя файл index.php със следното съдържание
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script src="/jq.js"></script> <title>Сървър за лицензии на AutoCAD</title> <style> </style> </head> <body> <h1>Списък на лицензите на сървъра за лицензиране на AutoCAD</h1> <div style="margin: 10px;"> <?php $log = file_get_contents('.\/log.txt'); $logrp = nl2br($log); $arraystr = explode(PHP_EOL,$logrp); $busy = explode(" ",$arraystr[13]); echo "В момента са заети: ".$busy[12]." лицензии<br /><br />"; $i = 18; while($i<=37){ //$var $a = $i-17; $data = explode(" ", $arraystr[$i]); $time = str_replace('<br', '', $data[13]); //$varEND echo "<span>".$a." "; echo "<span>".$data[4]." "; echo "<span>".$data[12]." "; echo "<span>".$data[11]." "; echo "<span>".$time.""; echo "<br>"; $i++; } ?> </div> </body> </html>Моля, не осъждайте PHP кода, по-професионалните специалисти ще го направят по-добре, а аз го направих в рамките на знанията си.
Същността на работата на index.php:
- Получавам текста на файла log.txt, оформен по-рано от скрипта и обновяван на всеки 5 секунди.
- Заменям таговете за нов ред с html тагове.
- Разделям текста в масив по редове.
- Форматирам порядъка и съдържанието на редовете.
Резултат от изпълнението на всички изисквания
Как изглежда GUI сървър:

Как изглежда уеб страницата:

Файл с параметри .opt
В него съм посочил
TIMEOUTALL 14400 — времето на бездействие на програмата е ограничено на 4 часа
MAX_BORROW_HOURS [CODE] 48 — максималният срок на заемане е ограничен до 2 дни.
Доп. информация
Тъй като в организацията се използват коректни имена на домейни за служителите, по потребителското име много лесно се определя специалистът, който е заел лиценза.
Общ резултат от усилията:
- Потребителят самостоятелно вижда заетия лиценз и съответно натоварването на техническата поддръжка е намалено.
- В рамките на колектива от специалисти, работещи в софтуера без участието на техническата поддръжка, се решава въпросът „Кому ще бъде предоставен лицензът?“, а в зависимост от приоритета на работите, лицензът се освобождава или заема.
- Икономия от лицензиране на Windows.
Източник: habr.com
