Nejprve byste si měli přečíst něco o syntaxi rsync include/exclude. Mám pocit, že to, co chcete dělat, je lepší udělat pomocí **
globs než *
koule. (**
expanduje na libovolný počet záznamů, zatímco *
expanduje pouze na jeden záznam, který může odpovídat více adresářům záznamy. Podrobnosti jsou v man rsync
v části Pravidla vzorů pro zahrnutí/vyloučení .)
To znamená, že pokud chcete být schopni obnovit systém do známého funkčního stavu ze zálohy s minimem potíží, měli byste být opatrní s vyloučením souborů nebo adresářů. Sám používám rsnapshot a ve skutečnosti jsem zvolil opačný přístup:zahrnout vše kromě několika pečlivě vybraných adresářů.
Takže můj rsnapshot.conf ve skutečnosti uvádí (s kartami, aby byl analyzátor konfiguračního souboru rsnapshot šťastný):
interval backup NNN # pick your poison
one_fs 0
exclude /backup/**
exclude /dev/**
exclude /proc/**
exclude /run/**
exclude /sys/**
exclude /tmp/**
backup / ./
a velmi málo jiného. Ano, znamená to, že mohu zkopírovat o něco více, než je nezbytně nutné, ale zajišťuje to, že se zkopíruje vše, co není zamýšleno jako efermální. Vzhledem k tomu, že rsnapshot používá chování rsync hardlink-to-deduplicate, jediné skutečné náklady na to jsou během prvního spuštění; poté, za předpokladu, že máte přiměřeně velké (ve srovnání s vaší celkovou velikostí datové sady) cílové umístění zálohy, zabere to velmi málo času nebo místa na disku navíc. Vylučuji obsah /backup, protože tam připojuji cílový souborový systém zálohy; jeho nevyloučení by vedlo k situaci zkopírování zálohy do sebe. Nicméně pro jednoduchost, pokud budu někdy potřebovat obnovit na holý kov, chci si ponechat bod připojení!
V mém případě také nemohu rozumně použít one_fs 1
; Spouštím ZFS s aktuálně ~40 souborovými systémy. Výslovný výčet všech by byl noční můrou údržby a práce se souborovými systémy ZFS by byla mnohem složitější, než by bylo potřeba.
Téměř vše, co chcete vyloučit nad rámec výše uvedeného, bude každopádně záviset na distribuci, takže je prakticky nemožné dát obecnou odpověď. To znamená, že některé kandidáty pravděpodobně najdete pod /var.
Většinu toho, co se snažíte udělat, lze pravděpodobně provést jednoduše pomocí one_fs
nastavení. Nastavte souborové systémy, které chcete zahrnout do záloh, a poté toto nastavení použijte k ignorování zbytku (proc
, sys
, dev
, atd.). Zahrnul bych /lost+found
protože tento adresář by měl být vždy prázdný, pokud jste nezálohovali poškozený souborový systém, v takovém případě budete pravděpodobně chtít zálohu čehokoli, co fsck
zotavil. Také .pyc
a .pyo
by neměl být na prvním místě v kořenovém adresáři, takže bych tyto řádky také odstranil. /tmp
a /var/tmp
jsou asi jediné zbývající cesty na "obecném" systému, které obsahují data, která lze spolehlivě vyloučit ze záloh. Takže možná zkuste něco jako:
one_fs 1
exclude /tmp/
exclude /var/tmp/