В настоящее время я использую сервер SME, и мне нужно запустить сценарий при подключении SD-карт к моему серверу. Сам скрипт работает нормально (копирует содержимое карточек), но у меня возникают проблемы с автоматическим монтированием и выполнением скрипта.
У меня есть концентратор USB, состоящий из 10 портов USB; что отображается как:
[root@server ~]# lsusb
Bus 004 Device 002: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 055: ID 1a40:0101 TERMINUS TECHNOLOGY INC.
Bus 001 Device 051: ID 1a40:0101 TERMINUS TECHNOLOGY INC.
Bus 001 Device 050: ID 1a40:0101 TERMINUS TECHNOLOGY INC.
Bus 001 Device 001: ID 0000:0000
(Хаб - это записи TERMINUS TECHNOLOGY INC)
Поскольку я не могу подключить SD-карты непосредственно к серверу; Я использую USB-адаптер для SD-карты (их 10), подключенный к концентратору, для чтения карт. После подключения 10 насадок (без карт) к хабу; lsusb дает следующее:
[root@server ~]# lsusb
Bus 004 Device 002: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 073: ID 05e3:0723 Genesys Logic, Inc.
Bus 001 Device 072: ID 05e3:0723 Genesys Logic, Inc.
Bus 001 Device 071: ID 05e3:0723 Genesys Logic, Inc.
Bus 001 Device 070: ID 05e3:0723 Genesys Logic, Inc.
Bus 001 Device 069: ID 05e3:0723 Genesys Logic, Inc.
Bus 001 Device 068: ID 05e3:0723 Genesys Logic, Inc.
Bus 001 Device 067: ID 05e3:0723 Genesys Logic, Inc.
Bus 001 Device 066: ID 05e3:0723 Genesys Logic, Inc.
Bus 001 Device 065: ID 05e3:0723 Genesys Logic, Inc.
Bus 001 Device 064: ID 05e3:0723 Genesys Logic, Inc.
Bus 001 Device 055: ID 1a40:0101 TERMINUS TECHNOLOGY INC.
Bus 001 Device 051: ID 1a40:0101 TERMINUS TECHNOLOGY INC.
Bus 001 Device 050: ID 1a40:0101 TERMINUS TECHNOLOGY INC.
Bus 001 Device 001: ID 0000:0000
Как видите, читателями являются записи "Gensys Logic, Inc".
Подключение SD-карты к устройству чтения не влияет на lsusb (он читается точно так же, как указано выше), однако моя система распознает карты нормально; как указано dmesg:
Attached scsi generic sg11 at scsi54, channel 0, id 0, lun 0, type 0
USB Mass Storage device found at 73
SCSI device sdd: 31388672 512-byte hdwr sectors (16071 MB)
sdd: Write Protect is on
sdd: Mode Sense: 03 00 80 00
sdd: assuming drive cache: write through
SCSI device sdd: 31388672 512-byte hdwr sectors (16071 MB)
sdd: Write Protect is on
sdd: Mode Sense: 03 00 80 00
sdd: assuming drive cache: write through
sdd: sdd1
SCSI device sdd: 31388672 512-byte hdwr sectors (16071 MB)
sdd: Write Protect is on
sdd: Mode Sense: 03 00 80 00
sdd: assuming drive cache: write through
SCSI device sdd: 31388672 512-byte hdwr sectors (16071 MB)
sdd: Write Protect is on
sdd: Mode Sense: 03 00 80 00
sdd: assuming drive cache: write through
sdd: sdd1
SCSI device sdd: 31388672 512-byte hdwr sectors (16071 MB)
sdd: Write Protect is on
sdd: Mode Sense: 03 00 80 00
sdd: assuming drive cache: write through
SCSI device sdd: 31388672 512-byte hdwr sectors (16071 MB)
sdd: Write Protect is on
sdd: Mode Sense: 03 00 80 00
sdd: assuming drive cache: write through
sdd: sdd1
Если я вручную монтирую sdd1 (mount / dev / sdd1 / somedirectory /), это работает нормально.
Что мне действительно нужно, так это решение, которое автоматически монтирует каждую из карт по мере их ввода в считывающее устройство; и выполняет для них сценарий (при этом их содержимое копируется в другой каталог).
Моя проблема в том, что я не знаю, как это сделать; Я не думаю, что udev будет работать, поскольку USB-устройства не меняются; если бы я мог каким-то образом заставить udev работать с / dev / диск / по пути / однако я думаю, что это выполнимо (кажется, что записи постоянные).
ls / dev / disk возвращает:
pci-0000:00:1d.7-usb-0:4.1.1.1:1.0-scsi-0:0:0:0
pci-0000:00:1d.7-usb-0:4.1.1.2:1.0-scsi-0:0:0:0
pci-0000:00:1d.7-usb-0:4.1.1.3:1.0-scsi-0:0:0:0
pci-0000:00:1d.7-usb-0:4.1.1.4:1.0-scsi-0:0:0:0
pci-0000:00:1d.7-usb-0:4.1.2:1.0-scsi-0:0:0:0
pci-0000:00:1d.7-usb-0:4.1.3:1.0-scsi-0:0:0:0
pci-0000:00:1d.7-usb-0:4.1.4:1.0-scsi-0:0:0:0
pci-0000:00:1d.7-usb-0:4.2:1.0-scsi-0:0:0:0
pci-0000:00:1d.7-usb-0:4.3:1.0-scsi-0:0:0:0
pci-0000:00:1d.7-usb-0:4.4:1.0-scsi-0:0:0:0
pci-0000:00:1d.7-usb-0:4.4:1.0-scsi-0:0:0:0-part1
pci-0000:0b:01.0-scsi-0:0:1:0
pci-0000:0b:01.0-scsi-0:0:1:0-part1
pci-0000:0b:01.0-scsi-0:0:1:0-part2
Сверху видно, что в считыватель подключена только одна карта (pci-0000: 00: 1d.7-usb-0: 4.4: 1.0-scsi-0: 0: 0: 0-part1).
Собирается
mount /dev/disk/by-path/pci-0000\:00\:1d.7-usb-0\:4.4\:1.0-scsi-0\:0\:0\:0-part1
Работает и помещает карту в / media / usbdisk /, однако:
mount /dev/disk/by-path/pci-0000\:00\:1d.7-usb-0\:4.4\:1.0-scsi-0\:0\:0\:0-part1 slot1/
не работает и возвращает «mount: невозможно получить адрес для / dev / disk / by-path / pci-0000»
Любые идеи и решения были бы замечательными, я видел знания многих ребят здесь раньше, поэтому я надеюсь, что кто-то сможет мне помочь.
Спасибо
У меня была такая же проблема, и я сидел на ней 3 дня, пытаясь получить @ # $%! SME для установки жесткого диска USB. Я хотел сделать резервную копию внешнего USB, но он отказался правильно смонтировать. Давая мне похожие ошибки, как вы указали Не совсем та же проблема, скажем, с жестким диском, а не с SD-картой, но, тем не менее, схожая.
Если вы выполните команду cat / proc / mdstat, вы увидите жесткие диски, перечисленные в вашей конфигурации RAID, однако она также покажет вам, что есть еще один диск, в настоящее время не смонтированный, как дополнительный диск для добавления в RAID. В моем случае это был sdc, поскольку sda и sdb составляли RAID.
Затем я удалил раздел на SDC с помощью fdisk / dev / sdc, добавил новый основной раздел и сохранил его. mkfs.ext3 -L MyLabel / dev / sdc1 (укажите имя метки) mkdir -p / media / usbdevice
удалил его, подождите несколько секунд и снова подключите. egrep "(kernel | fstab | scsi). * (usb | USB)" / var / log / messages теперь должны показать вам, что он смонтировал USB-накопитель с меткой.
viola fstab-sync сделала свое дело, и все готово.
Вы ищете программу под названием halevt
. Имейте в виду, что вам нужно уметь редактировать XML, чтобы заставить его делать то, что вы хотите.
Поскольку в SME Server есть hal и udev, вы можете напишите небольшой скрипт / демон Python (эта ссылка говорит об устройствах USB, но вы можете изменить ее для любого типа хранилища), которая обнаруживает вставки мультимедиа и выполняет операции.