Изменение файла монитора не работает для файла базы данных с помощью systemd - PullRequest
0 голосов
/ 19 января 2019

Я хочу отслеживать один файл базы данных в файловой системе по указанному ниже пути:

/var/lib/mysql/mydatabase/onetable.idb

Я установил службу systemd, но она не распознает, изменился ли файл. Если я изменю этот файл, ничего не произойдет, но если разрешение изменилось, это сработает. Я также пытался отслеживать этот файл с помощью inotifywait, но получил тот же результат.

Поскольку я знаю, что systemd запускается от имени пользователя root, я думаю, что здесь нет проблем с правами доступа Путь на 100% верен, потому что я могу перечислить файл напрямую.

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Временно решил эту проблему, вставив этот код в crontab:

*/3 * * * * test "`sudo find /var/lib/mysql/mydatabase/onetable.idb -mmin -4`" && /etc/myscript.sh

Это не постоянное решение, потому что я хочу выполнить этот скрипт на основе триггера.

0 голосов
/ 19 января 2019

Из справочной страницы inotify.7:

   The inotify API does not report file accesses and modifications that
   may occur because of mmap(2), msync(2), and munmap(2).

Эти процедуры часто используются в реализациях базы данных.

...