Как определить, когда новый диск SATA вставлен с использованием Java под Linux?

В настоящее время я работаю над проектом, в котором мне нужно выполнить массовый импорт данных в кластер Hadoop. Данные, которые необходимо импортировать в Hadoop, находятся на дисках SATA. Данные, которые необходимо импортировать, представляют собой образ диска Encase Forensics (E01). Я создал приложение, которое извлекает файлы из этих изображений и импортирует эти файлы в Hadoop, это прекрасно работает, но мне нужно запустить процесс вручную.

Я хочу автоматизировать процесс путем горячей замены дисков SATA и автоматически запустить процесс извлечения. Я написал свою программу на Java, и так должно быть из-за некоторых внешних библиотек, которые я использую для анализа изображений. Я искал в Интернете решение, где Java используется для обнаружения вновь вставленных дисков, но все, что я нашел, - это библиотеки, которые могут обнаружить USB-накопитель или использовать правила udev, чтобы запустить процесс (я мог бы использовать это, но предпочел бы решение Java)

Кто-нибудь знает, существует ли что-то подобное тому, что я описал? Или кто-нибудь может указать мне правильное направление? Это будет высоко ценится!

Почти забыл... Я использую Ubuntu 12.04 Server Edition в качестве операционной системы.

1 ответ

udisks - это API-интерфейс D-Bus, который предоставляет информацию (включая уведомления) о вставке и удалении мультимедиа, и вы можете подписаться на уведомления с помощью dbus-java.

В качестве альтернативы, вы можете заставить ваше Java-приложение прослушивать localhost сокет и напиши udev Правило, которое отправило соответствующую информацию о событии через сокет.

Другие вопросы по тегам