Есть ли способ предоставить сценарии после монтирования и перед монтированием в Linux?
Я пытаюсь сделать некоторые сценарии на носителе при монтировании и перед монтированием (например, для синхронизации).
Любая помощь приветствуется.
Если вы пытаетесь сделать это для людей, вызывающих команды /sbin/mount
и /sbin/umount
, все, что вам нужно сделать, это создать программу-оболочку для обеих программ и запрограммировать то, что вы хотите, в эти программы-оболочки.
Программа-оболочка заменяет /sbin/mount
на программу-обертку, которая вызывает real /sbin/mount
(переименовывается в что-то вроде /sbin/mount-real
или /sbin/umount-real
). Чтобы никто не мог вызвать настоящую программу, используйте групповые разрешения, чтобы ограничить ее и установить бит SGID для программ-оболочек.
Если вы хотите исправить библиотечный вызов mount(2)
, то это трудоемко, и, вероятно, трудно, а возможно, и не рекомендуется, поскольку это может вызвать проблемы для внутренней обработки системы, особенно во время запуска и завершения работы.
Даже с программой-оберткой вам, вероятно, придется тщательно протестировать ее, чтобы избежать вмешательства системы и внести соответствующие изменения.
Вы, вероятно, можете использовать ловушку ядра inotify , хотя событие pre-unmount может быть действительно сложно поймать, так как я не уверен, есть ли событие inotify, отправленное перед размонтированием каталога.
Самое простое решение, которое, вероятно, будет работать вечно, это опросить /etc/mtab
или /proc/mounts
mounts . После внесения изменений в этот файл это означает, что что-то было смонтировано или размонтировано. Затем вы должны проверить там устройство, которое вы хотите.
Udev - не лучшее решение, поскольку оно просто сообщает вам, подключено ли устройство. Он не говорит, было ли устройство фактически установлено или нет. Это может иногда работать, но это хакерское решение, которое в какой-то момент сломается, и вы будете выдергивать волосы.
Вы могли бы написать правило udev, чтобы сделать это. Я использовал что-то вроде этого для автоматического резервного копирования материала на USB-диск. Прикольные вещи.