サーバーの毎日のバックアップを作成するためにtar
を使用していて、/ procおよび/ sysシステムディレクトリのバックアップを避けたいが、ファイルツリーの他の場所にある「proc」または「sys」という名前のディレクトリを除外しない。
たとえば、次のディレクトリツリーがある場合( "bla"は通常のファイルです):
# find
.
./sys
./sys/bla
./foo
./foo/sys
./foo/sys/bla
./sys
を除外したいのですがnot./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)
除外パターンへの絶対パスを指定できます。これにより、他の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 *