Большинство систем Linux уже имеют механизм, который обнаруживает новые устройства USB и автоматически монтирует их, если они являются устройствами хранения, и так далее. Что вы можете сделать, так это использовать интерфейс python для библиотеки inotify для мониторинга/mnt или/dev.
Чтобы увидеть, как это работает, установите inotify-tools
или некоторый подобный пакет с именем, и вы можете сделать:
$ inotifywait -m -e create /tmp &
Эта команда контролирует (-m)/TMP для создания (-e создания) новых файлов или каталоги. Например touch /tmp/x
и будет выводить
/tmp/ CREATE x
Вы можете сделать то же самое с питоном и его python-inotify
или аналогичного пакета. Существует команда pyinotify
, но с большей пользой можно закодировать эквивалентную программу питона:
import pyinotify
wm = pyinotify.WatchManager()
notifier = pyinotify.Notifier(wm)
wm.add_watch('/tmp', pyinotify.IN_CREATE)
notifier.loop()
При гт и воссоздают/TMP/х это печатает:
<Event dir=False mask=0x100 maskname=IN_CREATE name=x path=/tmp pathname=/tmp/x wd=1 >
Смотрите wiki для учебника и т.д.
в вашем случае вы можете отслеживать /mnt
для обнаружения вновь смонтированных файловых систем, или /dev
- Откройте для себя новые устройства, такие как /dev/sdb
и /dev/sdb1
. Inotify не является рекурсивным, поэтому возвращаются только изменения непосредственно в наблюдаемом каталоге.