Назад | Перейти на главную страницу

есть ли какой-то улавливаемый триггер при записи / удалении нового файла в Linux?

Мне нужен простой инструмент для синхронизации двух папок на удаленных серверах ...

Утопически мне нужен только триггер ОС (или что-то в этом роде), который можно было бы использовать для автоматического запуска rsync?

Есть ли что-нибудь в этом роде или простой инструмент, способный сделать это?

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

цель - легко синхронизировать удаленные папки

обновление: может быть что-то вроде Гамин...?

Спасибо !

арод

В мой ответ на этот вопрос, Я предложил Incron. Настроить общесистемные и пользовательские файлы конфигурации легко, аналогично cron. Вы можете указать сценарии, которые будут запускаться при запуске событий файловой системы. Он использует inotify API ядра Linux. Вы можете взглянуть на него и посмотреть, работает ли он для вас.

Пытаться inotify. Это лучше всего подходит для ваших относительно простых требований.

Пример сценария:

while { inotifywait -e create -e delete /directory2watch; }; do
  echo rsync -avz /directory2watch
done

Или что-то вроде того.

С inotify у вас есть доступ к этим событиям:

  • доступ - был осуществлен доступ к файлу
  • изменить - файл был изменен
  • attrib - атрибуты файла изменены
  • close_write - файл закрыт после открытия в режиме записи
  • close_nowrite - файл закрыт после открытия в режиме только для чтения
  • close - файл закрыт, независимо от режима чтения / записи
  • open - файл был открыт
  • move - файл в наблюдаемом каталоге был перемещен
  • create - файл был создан в наблюдаемом каталоге
  • удалить - файл был удален в наблюдаемой директории
  • delete_self - наблюдаемый файл был удален
  • unmount - файловая система, в которой существует отслеживаемый файл, была отключена

Похоже DRBD сделаю именно то, что вам нужно. Он работает на уровне блочного устройства, поэтому, если вы не хотите поддерживать отдельный раздел для этих синхронизированных данных, вы можете просто создать образ диска и смонтировать его с обратной связью, используя DRBD для синхронизации с удаленным сервером.

Очевидное решение здесь AFS

Существуют всевозможные сложности при использовании DRBD в любой сети, кроме небольшой локальной сети с высоким уровнем связи между узлами.

Но вы можете использовать собственное решение, используя inotify