В настоящее время у меня есть система, которая выполняет резервное копирование моего сервера Linux на USB-накопитель на /media/usb
. Все это работает правильно. Однако на самом деле у меня есть 2 диска, которые мы пытаемся менять местами каждый день.
Есть ли способ регистрации, когда USB-устройство было подключено, и способ использования sendmail
или что-то подобное, например, отправить электронное письмо администратору, если диск не меняли местами более 3 дней?
Вы можете разобрать / var / log / messages, но я бы не стал.
Я бы написал правило udev, которое запускало скрипт при подключении / отключении устройства. Есть еще информация об этом Вот
Я скопировал основные моменты на случай, если этот сайт выйдет из строя:
Файлы правил хранятся в
/etc/udev/rules.d/
каталог.Из README в этом каталоге есть несколько советов о том, как давать имена файлам правил:
Файлы должны называться xx-descriptive-name.rules, xx следует выбирать первым в соответствии со следующими точками последовательности:
<60 пользовательских правил; если вы хотите предотвратить переопределение присвоения правилами по умолчанию, используйте оператор: =.
они не могут получить доступ к постоянной информации, например, от vol_id
<70 правил, которые запускают помощники, такие как vol_id, для заполнения базы данных udev
<90 правил, которые запускают другие программы (часто с использованием информации из базы данных udev)
= 90 правил, которые должны выполняться последними
Первая часть правила udev - это совпадающие ключи. Мы будем использовать запись KERNEL с самого верха цепочки, а также атрибуты idVendor, idProduct и serial из информации об устройстве. Это положительно определит эту конкретную флешку и проигнорирует все остальные. Аргумент ядра использует вопросительный знак в качестве подстановочного знака, чтобы, если бы наш диск был установлен на другом узле (например, sda1, sdb1, sdc1 и т. Д.), Его все равно можно было бы идентифицировать.
KERNEL=="sd?1", ATTRS{idVendor}=="13fe", ATTRS{idProduct}=="1f00",
ATTRS{serial}=="50E6920B000AE8"
Теперь, когда у нас есть ключи, необходимые для идентификации конкретного оборудования, которое мы ищем, мы можем добавить аргументы присваивания. В нашем случае мы добавили два. Первый создает символическую ссылку на это устройство внутри каталога / dev /. Второй выполняет сценарий в нашем домашнем каталоге:
SYMLINK+="hackaday", RUN+="/home/mike/notify-plugin.sh 'HackaDay Thumbdrive:' 'Connected as: $KERNEL'"
Вот окончательное правило, собранное в одну строку:
KERNEL=="sd?1", ATTRS{idVendor}=="13fe", ATTRS{idProduct}=="1f00", ATTRS{serial}=="50E6920B000AE8", SYMLINK+="hackaday", RUN+="/home/mike/notify-plugin.sh 'HackaDay Thumbdrive:' 'Connected as: $KERNEL'"
Мы добавили это как единственную строку в наш файл правил, а затем перезапустили udev, используя следующие команды:
sudo nano /etc/udev/rules.d/81-thumbdrive.rules
sudo /etc/init.d/udev restart
Да, каждый раз, когда вы подключаете или отключаете USB-устройство, сообщение (или сообщения) записывается (пишутся) в / var / log / messages. Вы можете легко проверить это с помощью команды dmesg. Было бы вполне разумно опрашивать этот файл каждые (x) единиц времени, чтобы проверить наличие сообщений о подключении / отключении и действовать соответствующим образом.