Синхронизация файлов в реальном времени

Есть ли какой-либо инструмент для синхронизации файлов между двумя или несколькими серверами Linux сразу после записи файла на диск? Команда rsync не помогает мне в этом, потому что, если я установил rsync в cron, минимальное время, которое я могу установить, составляет 1 минуту, но мне нужно это в режиме реального времени.

  • Типичные текстовые файлы, присутствующие во всех (большинстве) системах GNU / Linux?
  • Что такое никто не пользователь и группа?
  • Как узнать, сколько строк содержит текстовый файл, не просматривая его?
  • Удалить все файлы в каталоге
  • Удалите все файлы, к которым не существует соответствующий файл с другим расширением.
  • Отображение истории файла (список пользователей, которые изменили файл)
  • Задавать групповые разрешения как разрешения владельца
  • Есть ли способ скомбинировать два файла?
  • 5 Solutions collect form web for “Синхронизация файлов в реальном времени”

    Не использовал его сам, но недавно прочитал об этом. Существует демон lsyncd , который, как я полагаю, делает именно то, что вам нужно.

    Узнайте больше об этом ЗДЕСЬ

    «SIOS Protection Suite для Linux» может предложить это на AWS.

    http://www.linuxclustering.net/2016/03/21/step-by-step-how-to-configure-a-linux-failover-cluster-in-amazon-ec2-without-shared-storage-amazon- AWS-sanless-кластер / # InstallConfigureCluster

    Вам нужно будет подойти к этому с помощью решения типа кластерной файловой системы – простая синхронизация между двумя машинами не даст вам ответа в реальном времени.

    Синхронизация файлов в реальном времени между несколькими серверами в режиме с несколькими ведущими

    Существует хороший инструмент под названием lsyncd для синхронизации файлов между несколькими серверами в режиме реального времени. Здесь я попытался с двумя серверами.

    Хосты: Server1 и Server2

    Используемая ОС: CentOS 7

    Установите ниже пакеты на обоих серверах.

    #yum install -y epel-release

    #yum -y install lua lua-devel pkgconfig gcc asciidoc lsyncd

    генерировать ssh-ключ на обоих серверах и добавлять в файл authorized_keys . [добавить открытый ключ server1 в authorized_keys сервера2 и открытый ключ сервера2 в файл authorized_keys сервера1]

    Конфигурация Server1:

    Откройте /etc/lsyncd.conf и закомментируйте конфигурацию по умолчанию, используя -- в начале строки и добавьте ниже конфигурацию в файл.

    settings {

    logfile = "/var/log/lsyncd/lsyncd.log",

    delay = 1

    }

    sync {

    default.rsync,

    source="/home/test/public_html/",

    target="server2:/home/test/public_html/",

    rsync = {

    compress = true,

    acls = true,

    verbose = true,

    owner = true,

    group = true,

    perms = true,

    rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no"

    }

    }

    Измените целевой IP в target параметре.

    Вы можете изменить параметр delay в соответствии с вашим требованием. Здесь он устанавливается 1 секунда.

    Теперь создайте каталог журнала.

    mkdir -p / var / log / lsyncd

    Включите службу lsyncd для запуска автоматически.

    #systemctl enable lsyncd.service

    Запустите службу.

    #systemctl start lsyncd.service

    Конфигурация сервера2:

    Следуйте той же конфигурации, что и Server1, и измените target IP-адрес.

    Теперь синхронизация установлена.

    Вы можете проверить активность из #tailf /var/log/lsyncd/lsyncd.log

    Спасибо Мельбурсну за его предложение.

    Inotify-инструменты

    Обеспечьте интерфейс для inotify , состоящий из:

    inotifywait

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

    inotifywatch

    Эта команда собирает статистику использования файловой системы и выводит количество каждого события inotify.

    Linux и Unix - лучшая ОС в мире.