Подтвердить что ты не робот

Как сохранить две папки автоматически синхронизированы?

Я хотел бы иметь синхронизированную копию одной папки со всем ее поддеревом.

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

Каков наилучший подход к этой задаче?

Кстати: я на Ubuntu 12.04

Конечная цель - иметь отдельную резервную копию в реальном времени без использования символических ссылок o mount. Я использовал Ubuntu One для синхронизации данных между моими компьютерами, и через некоторое время что-то пошло не так, и все мои данные были потеряны во время синхронизации.

Поэтому я решил добавить еще один шаг, чтобы сохранить резервную копию моих данных:

  • Я храню свои данные в папке "
    "
  • Мне нужен ответ моего текущего вопроса, чтобы создать одностороннюю синхронизацию "папки А" на "папку В" (cron a script с rsync? может быть?). Мне нужно, чтобы это был один путь только от A до B, любые изменения в B не должны применяться к A.
  • Я просто синхронизирую "папку B" с Ubuntu One

    Таким образом, любое изменение A будет применено к B, которое будет обнаружено из U1 и синхронизировано с облаком.
    Если что-то пойдет не так, и U1 удалит мои данные на B, я всегда их на A.

Вдохновленный комментариями lanzz, другой идеей может быть запуск rsync при запуске для резервного копирования содержимого папки под Ubuntu One и запуск Ubuntu One только после выполнения rsync. Что ты об этом думаешь? Итак, как узнать, когда заканчивается rsync?

4b9b3361

Ответ 1

Вы можете использовать inotifywait (с включенными флагами modify,create,delete) и rsync.

while inotifywait -r -e modify,create,delete /directory; do
    rsync -avz /directory /target
done

Ответ 2

Посмотрите rsync, учебник, например здесь.

Также посмотрите onchange script.

Ответ 3

Вам нужно что-то вроде этого: https://github.com/axkibe/lsyncd Это инструмент, который объединяет rsync и inotify - первый инструмент, который зеркалирует, с правильными параметрами, каталог с последним битом. Последнее говорит ядру уведомлять программу изменений в каталоге ot файла. В нем говорится:

Он объединяет и объединяет события в течение нескольких секунд, а затем запускает один (или более) процесс для синхронизации изменений.

Но - согласно Digital Ocean на https://www.digitalocean.com/community/tutorials/how-to-mirror-local-and-remote-directories-on-a-vps-with-lsyncd - это должно быть в репозитории Ubuntu!

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