В предыдущей статье я детально описал установку и настройку 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, через переменные указываем 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
4) Нажимаем Ctrl+O для сохранения изменений, затем Enter, и Ctrl+X для выхода из редактора.
5) Предоставляем полные права скрипту:
sudo chmod 777 ./usbname
6) Проверим скрипт на работоспособность:
./usbname
7) Открываем USB Redirector на своём компьютере и видим назначенное имя USB устройству :
8) Подключаем USB устройство к своему ПК кнопкой «Connect USB device»:
9) Возвращаемся в консоль и заново запустим скрипт:
./usbname
Открываем USB Redirector и видим новое назначенное имя устройству уже с подключенным клиентом:
10) Вернемся обратно в консоль и напишем следующий скрипт, предназначенный для регулярного выполнения основного сценария:
sudo nano ./astart
11) Заполним его содержимым строками:
#!/bin/bash
watch -n 3 /down/usbname
12) Нажимаем Ctrl+O для сохранения изменений, затем Enter, и Ctrl+X для выхода из редактора.
13) Предоставляем полные права скрипту:
sudo chmod 777 ./astart
14) Проверяем скрипт на работоспособность:
./astart
15) В консоли сервера остановим выполнения скрипта клавишами «Ctrl+Z»
16) Копируем скрипт с полными правами в папку «/usr/local/bin»:
sudo cp -R ./astart /usr/local/bin/astart
17) Автоматизируем предыдущий скрипт, сделаем так чтоб он запускался из подсистемы. Для этого создадим новый сервис командой:
sudo systemctl edit --force --full script.service
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
19) Нажимаем поочередно для выхода «Ctrl+K», «Ctrl+Q» при запросе сохранения нажать «y»
20) Запускаем сервис и проверяем на ошибки:
sudo systemctl start script
sudo systemctl status script
21) Добавим сервис в автозапуск:
sudo systemctl enable script
Таким образом, нам удалось автоматизировать процесс переименования USB-устройств в программе USB Redirector исходя из того, кто именно подключается к ним. На этом заканчиваю материал, выражаю благодарность за проявленное внимание и искренне желаю продуктивной работы.