Ответ 1
Вы можете использовать inotifywait
(с включенными флагами modify,create,delete
) и rsync
.
while inotifywait -r -e modify,create,delete /directory; do
rsync -avz /directory /target
done
Я хотел бы иметь синхронизированную копию одной папки со всем ее поддеревом.
Он должен работать автоматически; всякий раз, когда я создаю, изменяю или удаляю персонал из исходной папки, эти изменения должны автоматически применяться к папке синхронизации.
Каков наилучший подход к этой задаче?
Кстати: я на Ubuntu 12.04
Конечная цель - иметь отдельную резервную копию в реальном времени без использования символических ссылок o mount. Я использовал Ubuntu One для синхронизации данных между моими компьютерами, и через некоторое время что-то пошло не так, и все мои данные были потеряны во время синхронизации.
Поэтому я решил добавить еще один шаг, чтобы сохранить резервную копию моих данных:
Вдохновленный комментариями lanzz, другой идеей может быть запуск rsync при запуске для резервного копирования содержимого папки под Ubuntu One и запуск Ubuntu One только после выполнения rsync. Что ты об этом думаешь? Итак, как узнать, когда заканчивается rsync?
Вы можете использовать inotifywait
(с включенными флагами modify,create,delete
) и rsync
.
while inotifywait -r -e modify,create,delete /directory; do
rsync -avz /directory /target
done
Посмотрите rsync
, учебник, например здесь.
Также посмотрите onchange script.
Вам нужно что-то вроде этого: 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!
У меня есть аналогичные требования, и этот инструмент, который я еще должен попробовать, кажется подходящим для этой задачи.