Интересный вопрос, действительно. На первый взгляд я вижу следующие преимущества:
В первую очередь, Вы заявляете ту интерпретацию".
"поскольку текущий каталог может быть сделан Shell или системными вызовами. Но наличие точечной записи в каталоге на самом деле удаляет эту необходимость и вызывает непротиворечивость даже на более низком уровне.
Но я не думаю, что это было основной идеей позади этого проектного решения.
Когда файл создается или удаляется из каталога, штамп времени изменения каталога должен быть обновлен, также. Эта метка времени хранится в ее inode. inode число хранится в соответствующей записи каталога.
ЕСЛИ БЫ точечная запись не была бы там, стандартные программы должны были бы искать inode число при записи для этого каталога в родительском каталоге, который вызовет поиск каталога снова.
НО к счастью в текущем каталоге существует точечная запись. Стандартная программа, которая добавляет или удаляет файл в текущем каталоге просто, должна перейти назад к первой записи (где точечная запись обычно находится), и сразу нашел inode число для текущего каталога.
Существует третья хорошая вещь о точечной записи:
Когда fsck
проверяет гнилую файловую систему и должен иметь дело с несвязанными блоками, которые находятся также не в бесплатном списке, для него легко проверить, имеет ли блок данных (при интерпретации как список каталога) точечную запись, это указывает на inode, который в свою очередь указывает назад на этот блок данных. Если так, этот блок данных можно рассмотреть как потерянный каталог, который должен быть повторно подключен.
Два резервных инструмента, которые могут сохранить двоичный файл diffs, являются rdiff-резервным-копированием и двуличностью. Оба на основе librsync
, но выше этого они ведут себя вполне по-другому. Rdiff-резервные-памяти последняя копия и реверс diffs, в то время как двуличность хранит традиционный возрастающий diffs. Эти два инструмента также предлагают другой набор периферийных функций.
В последнее время я испытывал дампы базы данных хранения в мерзавце. Это может стать непрактичным, если Ваши дампы базы данных являются действительно большими, но это работало на меня для небольших баз данных (сайты Wordpress и т.п.).
Мой резервный сценарий примерно:
cd /where/I/keep/backups && \
mysqldump > backup.sql && \
git commit -q -m "db dump `date '+%F-%T'`" backup.sql
Вы могли сделать что-то вроде этого (с a.sql
как Ваше еженедельное резервное копирование).
mysqldump > b.sql
diff a.sql b.sql > a1.diff
scp a1.diff backupserver:~/backup/
Ваши различные файлы станут больше к концу недели.
Мое предложение, хотя просто gzip это (использование gzip -9
для максимального сжатия). Мы делаем это в данный момент, и это дает использованию gz-файл 59 МБ, в то время как оригинал составляет 639 МБ.
(Я не сделал этого в производстве.)
Сделайте полное резервное копирование однажды в день или неделю. Резервное реле регистрируется однажды в час или день.