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