Управление устройствами с помощью Udev в Linux

Управление устройствами с помощью Udev в Linux

Рубрики:

Linux, Утилиты Linux

Метки:

, ,

Udev — менеджер устройств для ядра Linux. Он появился в версии 2.6 и заменил своего предшественника — devfs. Когда пользователь присоединяет или отсоединяет устройство, инструмент Udev создает или удаляет соответствующий узел (node) устройства в каталоге /dev.

В этой статье мы расскажем, как использовать Udev для обнаружения и управления устройствами в Linux.

Содержание:

  1. Что такое udevadm
  2. Получение информации об устройстве
  3. Создание правил Udev
    1. Написание скриптов Bash
    2. Создание триггеров для запуска скриптов
    3. Использование правил Udev
  4. Выводы

Что такое udevadm

Утилита udevadm — инструмент командной строки, предназначенный для управления менеджером Udev. У нее есть различные подкоманды, которые позволяют собирать информацию об устройствах, а также выполнять административные задачи. Вот некоторые из них:

  • info — позволяет получить подробную информацию о конкретном устройстве;
  • monitor — позволяет отслеживать события устройств в режиме реального времени;
  • control — используется для управления самим менеджером Udev;
  • trigger — запускает события Udev вручную;
  • test — имитирует событие Udev.

Для примера давайте запустим команду udevadm monitor и подключим USB-накопитель:

 

udevadm monitor

Читайте также: Как настроить автоматическое резервное копирование файлов при подключении USB флешки к Linux.

На скриншоте выше видно, что Udev отследил событие add (добавить).

Получение информации об устройстве

Допустим, нам нужно узнать подробную информацию о характеристиках нашего USB-накопителя. Для этого сперва выполним команду lsblk, чтобы узнать его название:

 

lsblk

Название нашего устройства — sdb1. Теперь передадим путь к нему в качестве аргумента к команде udevadm info:

 

udevadm info

После выполнения команды, мы получили следующие данные о флешке:

  • абсолютный путь к устройству;
  • уникальные идентификаторы, присвоенные ядром Linux или Udev;
  • информация о характеристиках (производителе, модели, серийном номере и так далее);
  • модули ядра, которые могут указывать на драйвер устройства;
  • различные атрибуты, которые могут содержать информацию о состоянии устройства, его драйвере и так далее;
  • пользовательские свойства;
  • символические ссылки и многое другое.

Создание правил Udev

Правила Udev — файлы настроек, используемые менеджером Udev для управления устройствами при их обнаружении и взаимодействии с ними. С помощью этих правил можно:

  • присваивать названия устройствам;
  • назначать разрешения устройствам;
  • запускать пользовательские действия при добавлении, удалении или изменении устройств.

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

Написание скриптов Bash

Для начала создадим скрипт, который будет выполняться при подключении USB-накопителя:

 

Добавим в него код, который будет записывать в конец файла /tmp/scripts.log информацию о времени, когда устройство подключают в ОС:

 

add script

Читайте также: 10 полезных советов для написания эффективных bash скриптов в Linux.

Создадим второй сценарий Bash, который будет выполняться при отсоединении USB-накопителя:

 

Затем запишем в него код, который будет записывать в конец файла /tmp/scripts.log информацию о времени, когда устройство отсоединяют от ОС:

 

remove script

После, зададим этим скриптам права на исполнение для всех пользователей:

 

chmod scripts

Создание триггеров для запуска скриптов

Чтобы скрипты Bash выполнялись автоматически, нужно задать условия (триггеры), при которых они будут запускаться. Для этого создадим файл с расширением *.rules:

 

И запишем в него следующий код:

 

create triggers

Мы создали в файле два триггера. В этом коде:

  • SUBSYSTEM=="usb" — отслеживает устройства с подсистемой USB;
  • ACTION=="add" — указывает, что правило применяется при подключении USB-устройства;
  • ACTION=="remove" — указывает, что правило применяется при отключении USB-устройства;
  • ENV{DEVTYPE}=="usb_device" —  применяет правило только к USB-устройствам;
  • RUN+="/bin/device_added.sh" — запускает скрипт /bin/device_added.sh;
  • RUN+="/bin/device_removed.sh" — запускает сценарий /bin/device_removed.sh.

Читайте также: 4 полезных способа узнать имя подключенного USB-устройства в Linux.

Затем перезагрузим правила и настройки управления Udev с помощью следующей команды:

 

reload udevadm

Использование правил Udev

Теперь, когда правила Udev вступили в силу, можно проверить, как они работают. Для этого отсоединим USB-накопитель, обратно присоединим и в конце снова отсоединим его. Просмотрим содержимое файла /tmp/scripts.log:

 

cat scripts log

Как видно на скриншоте выше, в этом файле появились три записи.

Выводы

Менеджер Udev — полезный инструмент для управления устройствами в Linux. Мы рассказали, как он работает, и продемонстрировали Вам практические примеры создания правил Udev. Показанные в этой статье команды позволят эффективно управлять устройствами в ОС Linux.

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасностиполный курс по кибербезопасностикурсы DevNet / DevOps (программируемые системы) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Linux, Утилиты Linux

Метки:

, ,

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики
Меню