LINUX.ORG.RU
ФорумAdmin

Запуск синхронизации rsync в случае изменения файла


0

2

Есть каталог с множеством поддиректорий и файлов в них (около 9000). Необходимо запускать rsync в случае изменения файлов, а не по расписанию. Через что можно организовать мониторинг за таким количеством файлов с почти мгновенным откликом (lsof, fuser)?

inotify is a Linux kernel subsystem that acts to extend filesystems to notice changes to the filesystem, and report those changes to applications.

Bers666 ★★★★★
()

Опиши реальную задачу, а не своё видение её решения.
Вот наверняка же костыли какие-то городишь

zolden ★★★★★
()

Самая сложная задача тут гонки. Потому что inotify не умеет рекурсивно. Ты сделал новый каталог, изменил в нём файл, а программа-наблюдатель еще не успел на это отреагировать.

Так что чисто в user-space реализовать вряд ли получится. Нужно использовать что-то более специальное.

anarquista ★★★★★
()

Lsyncd (Live syncing mirror daemon) uses rsync to synchronize local directories with a remote machine running rsyncd. Lsyncd watches multiple directories trees through inotify. The first step after adding the watches is to rsync all directories with the remote host, and then sync single file by collecting the inotify events. So lsyncd is a light-weight live mirror solution that should be easy to install and use while blending well with your system.

cac2s
()
Ответ на: комментарий от kostian

А не будет достаточно натравить его на каталог верхнего уровня, где лежит всё остальное, как и описал ТС?

[~]>>> ll -d misc/
drwxr-xr-x 21 gotf gotf 4.1k Dec  4 09:34 misc/
[~]>>> touch misc/blah
[~]>>> ll -d misc/
drwxr-xr-x 21 gotf gotf 4.1k Dec  9 15:04 misc/
GotF ★★★★★
()
Ответ на: комментарий от GotF

А, нет, не получится. Это работает только на первом уровне вложенности.

GotF ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.