Добавить в корзинуПозвонить
Найти в Дзене
Dobry_Wolfik

Автоматизация идентификации USB-устройств в программе USB-Redirector

В предыдущей статье я детально описал установку и настройку USB-Redirector совместно с Webmin на платформе Ubuntu. Теперь же предлагаю вашему вниманию полезный скрипт, автоматизирующий присвоение имен USB устройству, выводящий информацию о том, каким пользователем устройство занято. Этот простой и удобный скрипт позволит легко определить пользователя, который пользуется USB-устройством. Таким образом, администраторы получают полный контроль над системой и возможность быстро выявлять конфликты между пользователями и USB-устройством. 1) Открываем наш терминал и переходим в каталог «/down» созданный в прошлой статье: cd /down 2) Создаем новый скрипт: sudo nano ./usbname 3) Наполняем скрипт кодом: #!/bin/bash #ставим номер открытого общего доступа USB устройство usbt=5 #назначаем имя через переменную для USB устройства usbname="USB-$usbt"; #сброс имени USB устройства на стандартное usbsrv -set-nickname "" $usbt #или назначаем имя USB устройства usbsrv -set-nickname "$usbname" $usbt #user,

В предыдущей статье я детально описал установку и настройку USB-Redirector совместно с Webmin на платформе Ubuntu. Теперь же предлагаю вашему вниманию полезный скрипт, автоматизирующий присвоение имен USB устройству, выводящий информацию о том, каким пользователем устройство занято.

Этот простой и удобный скрипт позволит легко определить пользователя, который пользуется USB-устройством. Таким образом, администраторы получают полный контроль над системой и возможность быстро выявлять конфликты между пользователями и USB-устройством.

1) Открываем наш терминал и переходим в каталог «/down» созданный в прошлой статье:

cd /down

2) Создаем новый скрипт:

sudo nano ./usbname
-2

3) Наполняем скрипт кодом:

#!/bin/bash

#ставим номер открытого общего доступа USB устройство

usbt=5

#назначаем имя через переменную для USB устройства

usbname="USB-$usbt";

#сброс имени USB устройства на стандартное

usbsrv -set-nickname "" $usbt

#или назначаем имя USB устройства

usbsrv -set-nickname "$usbname" $usbt

#user, через переменные указываем IP адреса клиентов подключаемых к USB-серверу

IPUser1='192.168.0.13'
IPUser2='192.168.0.14'
IPUser3='192.168.0.15'
IPUser4='192.168.0.16'

# Определяем список USB устройство общего доступа на сервере (значение переменной ad будет=share)

ad=$((usbsrv -list-devices | grep share) | cut -b 24-38)

#действие если не кто не подключен и значение переменной ad = share

if [ "$ad" ];
then
out="$usbname (Open)"
else

# Иначе, заново определяем USB устройство общего доступа на сервере, только ищем IP адрес клиента (значение переменной ad будет=192)

ad=$((usbsrv -list-devices | grep "192") | cut -b 25-38)

#определяем каким пользователем занято USB устройство

case $ad in

$IPUser1) out="$usbname on $ad (Name1)";;

$IPUser2) out="$usbname on $ad (Name2)";;

$IPUser3) out="$usbname on $ad (Name3)";;

$IPUser4) out="$usbname on $ad (Name4)";;

#в случае если пользователя нет в списке, назначаем просто имя USB устройство + IP адрес клиента

*) out="$usbname on $ad (No Name)";;
esac
fi

#Назначаем имя USB устройство после всех действий

usbsrv -set-nickname "$out" $usbt
-3

4) Нажимаем Ctrl+O для сохранения изменений, затем Enter, и Ctrl+X для выхода из редактора.

5) Предоставляем полные права скрипту:

sudo chmod 777 ./usbname
-4

6) Проверим скрипт на работоспособность:

./usbname
Успешное назначение имени.
Успешное назначение имени.

7) Открываем USB Redirector на своём компьютере и видим назначенное имя USB устройству :

-6

8) Подключаем USB устройство к своему ПК кнопкой «Connect USB device»:

-7

9) Возвращаемся в консоль и заново запустим скрипт:

./usbname
-8

Открываем USB Redirector и видим новое назначенное имя устройству уже с подключенным клиентом:

-9

10) Вернемся обратно в консоль и напишем следующий скрипт, предназначенный для регулярного выполнения основного сценария:

sudo nano ./astart

11) Заполним его содержимым строками:

#!/bin/bash
watch -n 3 /down/usbname
«watch» – предназначена для периодического повторного запуска программы с заданным интервалом времени и вывода результатов её выполнения в терминал.
«-n 3» – интервал запуск команды (3 секунда)
«/down/usbname» – полный путь к запуску скрипта
«watch» – предназначена для периодического повторного запуска программы с заданным интервалом времени и вывода результатов её выполнения в терминал. «-n 3» – интервал запуск команды (3 секунда) «/down/usbname» – полный путь к запуску скрипта

12) Нажимаем Ctrl+O для сохранения изменений, затем Enter, и Ctrl+X для выхода из редактора.

13) Предоставляем полные права скрипту:

sudo chmod 777 ./astart

14) Проверяем скрипт на работоспособность:

./astart
Теперь каждые 3 секунду имя USB устройство будет изменяться
Теперь каждые 3 секунду имя USB устройство будет изменяться
При подключенном к USB устройство клиентом
При подключенном к USB устройство клиентом
При не подключенном к USB устройству клиентом
При не подключенном к USB устройству клиентом

15) В консоли сервера остановим выполнения скрипта клавишами «Ctrl+Z»

16) Копируем скрипт с полными правами в папку «/usr/local/bin»:

sudo cp -R ./astart /usr/local/bin/astart

17) Автоматизируем предыдущий скрипт, сделаем так чтоб он запускался из подсистемы. Для этого создадим новый сервис командой:

sudo systemctl edit --force --full script.service
-14

18) Заполним сервис следующим содержимый:

[Unit]

#название функции

Description=AStartUSB
After=multi-user.target
[Service]
Type=idle

#полный путь к скрипту

ExecStart=/usr/local/bin/astart

#введение журнала функции

StandardOutput=journal+console
StandardError=journal+console
[Install]
WantedBy=multi-user.target
-15

19) Нажимаем поочередно для выхода «Ctrl+K», «Ctrl+Q» при запросе сохранения нажать «y»

-16

20) Запускаем сервис и проверяем на ошибки:

sudo systemctl start script
sudo systemctl status script
Ошибок не обнаруженно сервис загружен
Ошибок не обнаруженно сервис загружен

21) Добавим сервис в автозапуск:
sudo systemctl enable script

-18

Таким образом, нам удалось автоматизировать процесс переименования USB-устройств в программе USB Redirector исходя из того, кто именно подключается к ним. На этом заканчиваю материал, выражаю благодарность за проявленное внимание и искренне желаю продуктивной работы.