Поскольку вы работаете на linux os, вы можете просто использовать inotify tools . Существует несколько очень простых в использовании инструментов командной строки для отслеживания каждого изменения в файловой системе с использованием интерфейса ядра inotify
.
Пример:
> inotifywait -m -e create -e modify test/ --format '%:e %f'
Приведенная выше команда ожидает бесконечно (-m -> монитор) для события (-e) создает и изменяет файлы внутри test/
, который является каталогом, и выводит с отформатированной строкой, где %e
заменяется событием, а %f
заменяется созданным или измененным имя файла.
если вы теперь запускаете в отдельной оболочке некоторые проверки вроде:
> touch test/newfile1
> touch test/newfile2
> echo hallo > test/newfile2
Вывод команды:
Setting up watches.
Watches established.
CREATE newfile2
MODIFY newfile2
Довольно просто написать имя файла теперь в базе данных без повторного чтения всего каталога.