Автоматизация при работе с клиентским приложением. Примеры 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 интерфейсе концентратора.

Скачиваем утилиту для управления портами по ссылке:

http://distkontrol.com/upload/clients/usbcontrol.zip

Распаковываем архив с утилитой.

 

Создаем файл в директории с утилитой 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 СКРИПТАМИ ИЛИ ИЗ КОМАНДНОЙ СТРОКИ" 

http://www.distkontrol.ru/upload/RukovodstvoUSBoverIPv4.pdf

 

Замечания и дополнения по примерам, Вы можете отправить через форму:

http://support.distkontrol.ru/index.php?a=add&category=1