Если изменения в каталоге, то выполните некоторые действия в Linux - PullRequest
0 голосов
/ 01 апреля 2010

Я хочу сохранить файл и информацию о файле в базе данных автоматически, когда любой файл вставлен в каталог.

Предположим, в каталоге / etc мы храним некоторые файлы журналов. И если мы вставим новый файл в каталог / etc или изменим какой-либо существующий файл, то автоматически эта информация о файле должна перейти в конкретную таблицу базы данных.

Как я могу это сделать.

С уважением, Амит

Ответы [ 5 ]

2 голосов
/ 01 апреля 2010

INOTIFY (7) Руководство программиста Linux INOTIFY (7)

ИМЯ

inotify - мониторинг событий файловой системы

ОПИСАНИЕ

API inotify предоставляет механизм для мониторинга событий файловой системы. Inotify может использоваться для мониторинга отдельных файлов или для мониторинга Риз. Когда каталог отслеживается, inotify будет возвращать события для сам каталог и для файлов внутри каталога.

Inotify специфичен для Linux, но в дополнение к своему API C также имеет (как минимум) привязку в Python. Поскольку вы не указываете, какой язык программирования вы используете в Linux, я не могу вам больше помочь, кроме как рекомендовать вам искать функции Inotify в выбранной вами среде программирования Linux.

1 голос
/ 01 апреля 2010

Вы хотите использовать inotify . inotify позволяет эффективно просматривать каталог, чтобы видеть, когда файлы добавляются или изменяются.

0 голосов
/ 01 апреля 2010

Gamin будет другой альтернативой. Он также имеет привязки Python.

0 голосов
/ 01 апреля 2010

различные элементарные методы

  1. сохранить контрольную сумму файлов с помощью команды md5sum/sha512sum в файл / базу данных. затем проверяйте базу данных каждый раз, когда вы запускаете md5sum/sha512sum. это проверит наличие дубликатов или наличие изменений в файле. Также при необходимости сравните размеры файлов
  2. использовать инструменты, такие как diff, для сравнения базовых файлов
  3. используйте find или tree для отображения структуры каталогов и сохранения в файл. не забудьте отсортировать их при необходимости. затем сравните, используя diff для каждого прогона.
  4. для получения другой информации о файле, такой как время изменения, время доступа, разрешение файла и т. Д., Вы можете использовать stat команду
0 голосов
/ 01 апреля 2010

Текущий рабочий каталог - это функция текущей оболочки, поэтому вы можете изменить команду cd в вашей оболочке, введя:

function cd() {
   builtin cd $@
   do_some_action $@
}

в вашем .bashrc или эквивалентном файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...