Можно ли синхронизировать две директории Linux в режиме реального времени?

25

Я хотел бы синхронизировать каталог внутреннего жесткого диска с внешним жестким диском.

Когда я пишу или изменяю файл на моем внутреннем жестком диске, автоматически этот же файл будет скопирован на внешний жесткий диск ... и пока, пока, резервное копирование;)

Это было бы что-то вроде RAID с внешним жестким диском.

Это возможно?

stighy
источник
22
Я боюсь, что мышление «пока резервная копия» почти никогда не уместно и не правильно.
Бен Пилброу
Шутки в сторону. Что сказал Бен Это НЕ замена для резервного копирования.
Дункан Х Симпсон

Ответы:

8

В реальном времени, насколько я знаю, есть только DRBD . Но я не думаю, что это применимо в вашей ситуации, так как при удалении файла вы также удаляете его на внешнем диске. Проще всего использовать rsync и скрипт cron, который запускается каждые несколько минут.

PiL
источник
Спасибо за ваш ответ. Но если «cron» rsync будет запускаться каждые 5 минут, не скажется ли это на производительности? Разве это не слишком тяжело (проверяет все файлы, если что-то меняется?)?
2010 года
Вот почему они изобрели файловую систему с возможностью создания снимков;)
PiL
1
DRBD может быть немного сложен в настройке, если вам нужна помощь в его настройке, я написал хорошую статью: geek-kb.com/install-and-configure-drbd-centos-6
Итай Ганот
30

lsyncd кажется идеальным решением. он сочетает в себе inotify (встроенная функция ядра, отслеживающая изменения файлов в деревьях каталогов) и rsync (кроссплатформенный инструмент синхронизации файлов).

lsyncd -rsyncssh /home remotehost.org backup-home/

Цитата из github:

Lsyncd отслеживает интерфейс монитора событий деревьев локальных каталогов (inotify или fsevents). Он объединяет и объединяет события в течение нескольких секунд, а затем запускает один (или более) процесс (ы) для синхронизации изменений. По умолчанию это rsync. Таким образом, Lsyncd - это легкое решение для живого зеркала, которое сравнительно легко установить, не требующее новых файловых систем или блочных устройств, и не снижающее производительность локальной файловой системы.

Jens
источник
1
мошенник не двунаправленный
тымик
8

Вы можете просто создать программный RAID1 поверх своих внутренних и внешних жестких дисков. Для системы не имеет значения, встроенный ли это жесткий диск или внешнее хранилище данных.

Но RAID не является резервной копией! Что произойдет, если вы случайно удалите файл на жестком диске? Он также удаляется на вашем внешнем «резервном» диске.

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

Joschi
источник
4
Большой +1 за явное «RAID не резервное копирование».
Никгрим
Кроме того, программный рейд с внутренними и внешними жесткими дисками, вероятно, будет очень медленным, ненадежным и должен ломаться довольно часто.
Дэвид
2

incron (как мне предложили на этом сайте ранее в этом году).

Это все еще не заменяет надлежащую процедуру резервного копирования, хотя.

Мэтью Изелин
источник
3
наверное лучше было бы выгравировать его на камне.
Ди
1
@ Пожалуйста, объясните этот комментарий. Incron не является хорошим решением?
imolit
0

Git-приложение также может быть использовано для достижения этой цели.

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

Существует пошаговое руководство по быстрому привлечению пользователей с помощью git-annex

YPID
источник
Хотя это может теоретически ответить на вопрос, [было бы предпочтительнее] включить сюда основные части ответа и предоставить ссылку для справки.
Итай Ганот