инициировать оповещение, когда указанная команда выполняется в Linux - PullRequest
1 голос
/ 25 октября 2011

В моей системе установлено 3 общих ресурса samba, но внезапно один из них отключается без моего разрешения. Может быть, один из гончих скриптов, которые работают в моем crontab, но я не знаю, какой именно.

Я просмотрел весь каталог /var/log, ищущий слово umount, но безуспешно, затем я хочу войти в систему, когда команда umount выполнена и какой процесс ее выполняет.

Может быть, с syslog, может быть, с другим журналом, может быть, почта на мой ящик ....

Большое спасибо.

У меня есть это программное обеспечение:

mount: mount-2.12q
mount.cifs version: 1.14-3.5.4

Ответы [ 2 ]

0 голосов
/ 25 октября 2011

Поскольку монтирование - это изменение в файловой системе, возможно, для вас подходит решение inron-наблюдателя incron. Другим вариантом может быть auddd.

0 голосов
/ 25 октября 2011

Размонтирование происходит не только при вызове двоичного файла umount, многие программы могут это сделать.См. Страницу руководства (man syscalls) и выполните поиск umount.При этом вам нужно подключить соответствующий syscall и посмотреть, кто его вызывает.Я не уверен, но, скорее всего, возможно отключить внутри ядра, вызвав соответствующий метод напрямую, поэтому функциональность может обойти интерфейс syscall, который в основном требуется для взаимодействия с пользователем.В этом случае вам придется использовать некоторую технику отладки на самом ядре, что, возможно, немного для обнаружения вашей проблемы!

Возможно, вам удастся использовать strace в уже запущенном процессе (man strace),например, smbd, и посмотрите, вызывает ли этот процесс umount, что вполне возможно.

В любом случае, если вы можете перекомпилировать ядро ​​из исходного кода, вы можете добавить некоторое сообщение printk в функцию, которая используется для размонтированияустройство, чтобы увидеть, какой процесс это сделал (это мой подход для случаев, когда ничто иное, включая strace, не помогает).

...