Определение подключенных USB устройств под Linux

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Killer_Angel
Сообщения: 38
Зарегистрирован: Сб дек 01, 2012 9:05 am
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Определение подключенных USB устройств под Linux

Сообщение Killer_Angel » Пт дек 07, 2012 11:05 pm

tammat писал(а):Спасибо-попробую я шапочно знаком с udev где это попдробней прочесть?
если есть ссылка кинь
конкретно не подскажу, google/yandex )
посмотри мой пример, он конечно на скорую руку сделан, но работает
Killer_Angel
Сообщения: 38
Зарегистрирован: Сб дек 01, 2012 9:05 am
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Определение подключенных USB устройств под Linux

Сообщение Killer_Angel » Сб дек 08, 2012 1:04 am

вообщем :

два файла, 00-usb-scan.rules и scan_usb.php
http://nevicom.dyndns.org/scan_usb.zip

файл 00-usb-scan.rules запихнуть по адресу /etc/udev/rules.d
файл scan_usb.php запихнуть по адресу /usr/bin
выполнить chmod 755 /usr/bin/scan_usb.php

если каталог к сайту отличен от /var/www, поправить переменную $host_path в scan_usb.php
если каталог куда монтируются флешки отличен от /media, поправить переменную $mount_path в scan_usb.php

ОГРАНИЧЕНИЯ : корректно работать будет только если на флешке один раздел (покажет точку монтирования первого или последнего раздела), если вставляется за одну секунду одна флешка (параметры читаются за два прохода)


у кого не качается :
00-usb-scan.rules

Код: Выделить всё

ACTION=="add", SUBSYSTEM=="usb", KERNEL=="[0-9]-[0-9]", RUN+="/usr/bin/scan_usb.php s %s{serial}"
ACTION=="add", KERNEL=="sd[b-z][0-9]", RUN+="/usr/bin/scan_usb.php d %k"
scan_usb.php

Код: Выделить всё

#!/usr/bin/php
<?
  $file = '/tmp/scan_usb.tmp'; $mount_path = '/media/'; $host_path = '/var/www/';

  if ($argc < 3) {die("usage erorr...  \n");}  $cmd = $argv[1];  $var = $argv[2];

  if ($cmd == 's') {
    $f = fopen($file, 'w'); if (!$f) {echo "$errstr ($errno)n"; exit();}
      fwrite($f,'php '.$host_path.'objects/index.php USBDev.Connected serial:"'.$var.'"');
    fclose($f);
  }

  if ($cmd == 'd') {
    $f = fopen($file, 'a'); if (!$f) {echo "$errstr ($errno)n"; exit();}
      fwrite($f,' devname:"'.$mount_path.$var.'"');
    fclose($f);
    chmod($file, 0777); system('`cat '.$file.'`');  unlink($file);
  }
?>
Последний раз редактировалось Killer_Angel Сб дек 08, 2012 1:17 am, всего редактировалось 2 раза.
За это сообщение автора Killer_Angel поблагодарил:
odinvolk (Пт фев 09, 2018 2:52 pm)
Рейтинг: 1.16%
Killer_Angel
Сообщения: 38
Зарегистрирован: Сб дек 01, 2012 9:05 am
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Определение подключенных USB устройств под Linux

Сообщение Killer_Angel » Сб дек 08, 2012 1:06 am

пробуем, отписываемся )

PS: нашел глюк, пока не знаю из-за чего
проявляется : если зайти в редактировать и нажать обновить, то параметры с точкой монтирования (устройство) обнуляется, отсается только серийник
Ответить