Ответ 1
Вы можете указать абсолютные пути к шаблону exclude, таким образом будут заархивированы другие каталоги sys
или proc
:
tar --exclude=/sys --exclude=/proc /
Я использую tar
для ежедневного резервного копирования сервера и хочу избежать резервного копирования /system и/sys системных каталогов, но без исключения каких-либо каталогов с именем "proc" или "sys" где-то еще в дереве файлов.
Для примера, имеющего следующее дерево каталогов ( "bla" - обычные файлы):
# find
.
./sys
./sys/bla
./foo
./foo/sys
./foo/sys/bla
Я хотел бы исключить ./sys
, но не ./foo/sys
.
Я не могу найти шаблон --exclude
, который делает это...
# tar cvf /dev/null * --exclude=sys
foo/
или...
# tar cvf /dev/null * --exclude=/sys
foo/
foo/sys/
foo/sys/bla
sys/
sys/bla
Любые идеи? (Linux Debian 6)
Вы можете указать абсолютные пути к шаблону exclude, таким образом будут заархивированы другие каталоги sys
или proc
:
tar --exclude=/sys --exclude=/proc /
В этом случае вы можете использовать:
--anchored --exclude=sys/\*
потому что в случае, если ваш tar не показывает ведущую "/", у вас есть проблема с фильтром.
Используя tar, вы можете исключить каталоги, поместив файл тега в любую директорию, которая должна быть пропущена.
Создайте файлы тегов,
touch /sys/.exclude_from_backup
touch /proc/.exclude_from_backup
Затем
tar -czf backup.tar.gz --exclude-tag-all=.exclude_from_backup *