Прежде всего, вы должны немного прочитать о синтаксисе include / exclude rsync. У меня такое ощущение, что то, что вы хотите сделать, лучше сделать с помощью **
шариков, чем *
шариков. ( **
Расширяется до любого числа записей, в то время как *
расширяется только в одной записи , возможно , соответствие нескольких каталогов статей. Подробности в man rsync
соответствии с Включить / Исключить Шаблонные правила .)
Тем не менее, если вы хотите иметь возможность восстановить систему до известного рабочего состояния из резервной копии с минимальными хлопотами, вы должны быть осторожны с исключением файлов или каталогов. Я сам использую rsnapshot и фактически использовал противоположный подход: включаю все, кроме нескольких тщательно отобранных каталогов.
Итак, мой rsnapshot.conf на самом деле утверждает (с вкладками, которые делают парсер файла конфигурации rsnapshot счастливым):
interval backup NNN # pick your poison
one_fs 0
exclude /backup/**
exclude /dev/**
exclude /proc/**
exclude /run/**
exclude /sys/**
exclude /tmp/**
backup / ./
и совсем немного. Да, это означает, что я мог бы скопировать немного больше, чем то, что строго необходимо, но это гарантирует, что все, что не предназначено как ephermal, будет скопировано. Из-за rsnapshot, использующего поведение rsync с жесткой ссылкой на дедупликацию, единственная реальная цена для этого - во время первого запуска; после этого, если у вас достаточно целевого хранилища резервных копий разумного размера (по сравнению с вашим общим размером набора данных), это займет совсем немного времени или места на диске. Я исключаю содержимое / backup, потому что именно там я монтирую целевую файловую систему резервного копирования; не исключение этого приведет к ситуации копирования резервной копии в себя. Однако, для простоты, если мне когда-нибудь понадобится восстановить на голом металле, я хочу сохранить точку монтирования!
В моем случае я также не могу разумно использовать one_fs 1
; Я использую ZFS с ~ 40 файловыми системами. Перечисление всех этих явных явлений станет кошмаром для обслуживания и сделает работу с файловыми системами ZFS намного более сложной, чем это необходимо.
В любом случае, все, что вы хотите исключить из вышеперечисленного, будет зависеть от распределения, поэтому дать общий ответ практически невозможно. Тем не менее, вы, вероятно, найдете несколько кандидатов в / var.
exclude /somepath/*
прекрасно в этом случае; это исключает все/somepath/
, как и ожидалось. Вам не нужно,**
потому что нет необходимости смотреть глубже, когда все в/somepath/
уже исключено.