Автоматизация при работе с клиентским приложением. Примеры bash скрипта для ОС Linux и bat файла для ОС Windows.
Пример bash скрипта для ОС Linux, который подключает USB порт в случае, если он свободен, иначе пишет что он используется.
Создаем файл:
nano /home/check_and_use_ports
#!/bin/bash # Список адресов портов для отслеживания (разделитель пробел) adress_ports=(11311 11312 11313 11314 11321 11322 11323 11324 11331 11332) # Перебор всего списка for port in "${adress_ports[@]}" do # Проверяем занят ли порт result=$(/home/dkclientx86_64 -t 'list' | grep $port) if grep -q 'In-use' $result; then # если порт занят выводим сообщение + в лог (или закоментировать строки если не требуется) msg="USB $port USED. Not BOUND" echo $msg logger -t "Check and use ports" $msg else # свободный порт подключаем и логируем (distkontrolusb48-Gr-01 изменяем на свой) /home/dkclientx86_64 -t 'USE,distkontrolusb48-Gr-01.$port' msg="USB $port BOUND" echo $msg logger -t "Check and use ports" $msg fi done |
Даем права на исполнение:
chmod +x /home/check_and_use_ports
Проверяем:
/home/check_and_use_ports
Также возможно организовать его выполнение по крону.
Добавляем задачу в крон файл:
nano /etc/crontab
Добавляем строку на выполнение каждые 10 мин (или другой интервал):
*/10 * * * * root /home/check_and_use_ports
Пример bat скрипта для ОС Windows, который подключает USB порт в случае, если он свободен.
Создаем файл c разрешением .bat
check_and_use_ports.bat
Через любой доступный текстовый редактор открываем и заполняем содержимым:
echo off rem Список адресов портов (разделитель пробел) set list=11311 11312 11313 11314 11321 11322 11323 11324 rem Получаем список статуса всех портов C:\dkcl64.exe -t "list" -r %TEMP%\out.txt rem Перебор массивы списка потов (for %%a in (%list%) do ( rem Ишем искомый порт в списке статуса портов for /F "delims=" %%r IN ('type "%TEMP%\out.txt"^|findstr /rc:"%%a"') DO ( echo "Port %%a" rem Попытка подключения (distkontrolusb64-Gr-01 изменяем на свой) C:\dkcl64.exe -t "USE,distkontrolusb64-Gr-01.%%a" ) )) |
Также возможно организовать его выполнение с помощью планировщика задач.
Более подробно можно ознакомиться в документации к OC Windows
Пример bat скрипта для клиента, который принудительно освобождает USB порт и подключает его, а через заданное время отключает.
Устанавливаем пароль для ssh пользователя в Web интерфейсе концентратора.
Скачиваем утилиту для управления портами по ссылке:
Распаковываем архив с утилитой.
Создаем файл в директории с утилитой usbcontrol:
C:\usbcontrol\connect.bat
Через любой доступный текстовый редактор открываем и заполняем содержимым:
echo off C:\usbcontrol\usbcontrol.exe 192.168.1.180 0 1.1 PASSWORD timeout 1 C:\usbcontrol\usbcontrol.exe 192.168.1.180 1 1.1 PASSWORD timeout 3 C:\dkcl64.exe -t "USE,distkontrolusb48-Gr-01.31314" timeout 60 C:\dkcl64.exe -t "STOP USING,distkontrolusb48-Gr-01.31311" |
После подключения USB устройства также можно добавить запуск необходимых программ.
На файл C:\usbcontrol\connect.bat
создаем ярлык на рабочий стол
Полный список команд Вы можете посмотреть в руководстве пользователя:
Раздел "5.4 УПРАВЛЕНИЕ КЛИЕНТОМ DISTKONTROLUSB СКРИПТАМИ ИЛИ ИЗ КОМАНДНОЙ СТРОКИ"
Замечания и дополнения по примерам, Вы можете отправить через форму: