Я хочу сценарий, который выводит журнал и начинает входить в систему он, как только массовое хранение usb включается (с файлом 'OKdump' на нем).And, если что-либо аварийное (Как ошибка, которая визуально присутствует) обнаруживается, я хочу, чтобы он сделал снимок экрана и сохранил его на том же диске.
Используйте Udev. Udev является демоном диспетчера устройств. Среди других вещей это ответственно за именование Ваших устройств. Можно определить udev-правила путем помещения файлов с определенным синтаксисом в каталоге правил. Правила могут сделать много вещей - в особенности они могут запустить скрипты, когда определенное устройство подключено.
Сначала необходимо собрать информацию об устройстве. Скажем, Вы соединили его, и знайте, что это идет под именем /dev/sdb1
. Раз так выполненный:
udevadm info -a -p $(udevadm info -q path -n /dev/sdb1)
Команда произведет информацию о Вашем устройстве. Это - довольно длинное. Необходимо найти что-то, что определяет устройство исключительно. Это могло быть сериалом как ATTRS{serial}=="UA04FLGC"
или комбинация других атрибутов такой как ATTRS{idVendor}
и ATTRS{idProduct}
. Большинство имен более или менее сам объяснительное. Выберите один или комбинация некоторых, которые кажутся разумными - если они не работают, попробуйте что-то еще.
После того как Вы нашли, что уникальный идентификатор создает файл в /etc/udev/rules.d
это запускается с двух цифр и концов с .rules
. Эти две цифры указывают порядок обработки этих .rules-файлов - 70-usb-log-custom.rules
должен быть прекрасный выбор для Вас. Синтаксис этого файла правила может быть очень сложным. Если Вам интересно, Google udev. Если не только открывают недавно созданный файл и редактируют его, чтобы выглядеть примерно так:
# /etc/udev/rules.d/70-usb-log-custom.rules
KERNEL=="sd?1", ATTRS{serial}=="UA04FLGC", ACTION=="add", SYMLINK+="cusb1", RUN+="/home/confus/bin/usb-encrypt.sh add %k"
ENV{ID_FS_USAGE}=="crypto", ACTION=="remove", RUN+="/home/confus/bin/usb-encrypt.sh remove %k"
SUBSYSTEM=="usb", SYSFS{idVendor}=="1781", SYSFS{idProduct}=="0c9f", GROUP="users", MODE="0666"
Это - фактический udev файл, который я использую. Это имеет три правила в нем. Каждая строка является правилом самим по себе. Первая строка запускает скрипт для создания дешифрованного устройства каждый раз, когда зашифрованный диск соединен. Вторая строка вызывает тот же сценарий с различными вариантами в конечном счете, дешифрованное устройство удалено. Третья строка устанавливает полномочия для другого связанного устройства.
Скорее всего, Вам только будет нужна первая строка. Удалите остальных и вставьте правильный сериал (или compination параметров, которые Вы выбрали для идентификации устройства).
KERNEL=="sd?1"
говорит устройство, которое мы ищем в этом правиле, вроде называют /dev/sda1
, /dev/sdc1
или что-то как этот. Вопросительный знак является подстановочным знаком для любой буквы. ATTRS{serial}=="UA04FLGC"
уникальный идентификатор здесь. Для другого устройства я говорил о (третья строка), я не использую порядковый номер, но комбинацию SYSFS{idVendor}=="1781"
и SYSFS{idProduct}=="0c9f"
определить его.
ACTION=="add"
говорит правилу, что оно должно только действовать, когда устройство добавляется; не, когда это удалено.
SYMLINK+="cusb1"
создает символьную ссылку на диск, таким образом, каждый найдет его под /dev/cusb1
.
RUN+="/home/confus/bin/usb-encrypt.sh add %k"
запускает скрипт, и передачи 'добавляют' и '%k' (имя устройства) к нему.
Я не предоставлю больше подробную информацию, поскольку существуют превосходные учебные руководства на правилах udev. Что Вы читаете, здесь должен быть достаточно, чтобы смотреться все же.