Резервное копирование занимает вечность. Прежде чем мы сможем доверять btrfs или ZFS для резервного копирования инкрементных снимков, было бы неплохо, если бы существовал демон, который использовал inotify для отслеживания того, какие файлы на самом деле изменились, чтобы резервное копирование выполнялось быстрее? Где эта программа?
Как мне сделать резервную копию своего Linux-компьютера без необходимости каждый раз сканировать всю файловую систему? Мне нужна программа, которая обнаруживала бы новые или измененные фотографии, исходный код и т. Д. И ставила бы их в очередь для копирования на мой NAS.
Я ответил на свой вопрос "yum search inotify". Это называется lsyncd и он размещен в коде Google.
К сожалению, похоже, что он всегда сначала запускает полную rsync, поэтому мне все равно не поможет, если мой компьютер не будет включен более 14 часов за раз.
Lsyncd использует rsync для синхронизации локальных каталогов с удаленным компьютером, на котором запущен rsyncd. Lsyncd наблюдает за несколькими деревьями каталогов через inotify. Первым шагом после добавления часов является синхронизация всех каталогов с удаленным хостом, а затем синхронизация одного файла путем сбора событий inotify. Таким образом, lsyncd - это легкое решение с «живым зеркалом», которое должно быть легко установить и использовать, а также хорошо сочетается с вашей системой. См. Lsyncd --help для получения подробных сведений о параметрах командной строки.
Есть новая система под названием fsnotify
это предназначено для устранения недостатков inotify
который был введен для решения проблем dnotify
. fsnotify
позволяет без лишних хлопот просматривать всю файловую систему. С надеждой fsnotify
поможет решить все наши будущие проблемы резервного копирования Linux.
Вы можете что-нибудь взломать Incron.
/path1 IN_CLOSE_WRITE rsync -au $@/$# backuphhost:/path
Основываясь на исследовании (а не на тестировании), кажется, что inotify не может обрабатывать очень большое количество файлов в большинстве систем и / или делает это очень медленно. Нить на http://www.pubbs.net/kernel/200905/109416/ был самым полезным. Он указывал на новую функцию Linux, которая, похоже, находится в основной ветке или направляется к ней, fsnotify, то есть в Linux 2.6.31 и более поздних версиях.
Lsyncd синхронизирует все наблюдаемое дерево при запуске, потому что в 99% случаев это разумный поступок. Вам действительно нужен каталог на целевом хосте, который у вас есть на локальном хосте, иначе синхронизация может завершиться ошибкой, и вы хотите синхронизировать то, что вы пропустили, когда выключено. Однако, если вы знаете, что делаете, вы можете отключить синхронизацию при запуске, просто установите sync {..., startup = false} в конфигурационном файле Lsyncd.
Что касается inotify, это не количество файлов, а количество каталогов, которые потребляют ресурсы. Один каталог - это одно наблюдение, независимо от того, сколько файлов в нем содержится.
Создание fanotify на основе fsnotify, например inotify, выглядело очень многообещающим для людей, просматривающих тонны каталогов, но в настоящее время, начиная с Linux 2.6.37, fanotify вообще не сообщает о событиях переименования (перемещения), что делает его непригодным для такой работы :-(
Я потратил 6 месяцев на поиски лучшего решения для того, что вы пытаетесь сделать; эффективное резервное копирование на NAS. После первоначальной синхронизации все остальное гладкое, как масло. Последняя версия Lsyncd работает неплохо. Я задокументировал свои действия по приведенной ниже ссылке. Просто замените значения своей папки. Надеюсь это поможет:
https://docs.google.com/document/d/1XpqM5h5YMwuQqzdknyDDnjcQVYGjAsyAxfYprqSnhd0/edit
в Азии используется новая система, называемая sersync, которая вместо inotify-tool + rsync resolution http://code.google.com/p/sersync/ Он очень прост в использовании.