전체 시스템 백업을 위해 tar를 사용할 수 있습니까?

전체 시스템 백업을 위해 tar를 사용할 수 있습니까?

tar전체 시스템 백업을 위해 루트 디렉터리에서 이 명령을 사용하지 않는 타당한 이유가 있습니까? 아니면 Linux 시스템의 전체 복사본을 만드는 더 좋은 방법이 있습니까?

답변1

tar 기반 백업이 적합한지 여부는 보관하려는 메타데이터 유형과 사용하는 tar 구현에 따라 다릅니다.

GNU tar는 최근 Linux ACL에 대한 지원을 추가했지만 이 지원에는 결함이 있으며 아카이브에는 없지만 상위 디렉터리에서 상속된 ACL이 있는 파일을 추출할 수 있습니다. 이로 인해 이 액세스 권한이 없어야 하는 사용자에게 액세스 권한이 부여될 수 있습니다.

GNU tar의 SELinux 지원에도 비슷한 문제가 적용됩니다.

이 메타데이터에 의존하지 않고 증분 백업을 수행할 계획이 없다면 GNU tar를 사용할 수 있습니다.

참고: 최신 버전 star(schilytools)에는 SELinux 지원이 추가되었습니다.

GNU tar를 사용하여 증분 백업을 수행할 수 있다고 믿는 사람은 이 스크립트를 실행하여 작동하지 않는지 확인해야 합니다. 관련 버그 보고서는 2004년, 2011년, 2016년 9월에 GNU tar 관리자에게 전송되었습니다. 이 버그는 14년 동안 존재했습니다.

if [ "$gtar" ]; then
    #
    # Permit: gtar=/tmp/tar-1.30/src/tar sh gnutarfail.sh
    #
    GT=`"$gtar" --help 2> /dev/null | grep GNU`
else
    GT=`gtar --help 2> /dev/null | grep GNU`
    if [ "$GT" ]; then
            gtar=gtar
    else
            # Some systems have "gtar" installed as "tar"
            GT=`tar --help 2> /dev/null | grep GNU`
            if [ "$GT" ]; then
                    gtar=tar
            fi
    fi
fi
if [ -z "$GT" ]; then
    echo No gtar found
    exit 1
fi
echo gtar installed as $gtar
# Preparation complete
#-----------------------------------

cd /tmp
mkdir test.$$
cd test.$$

set -x

mkdir test
mkdir test/dir1
mkdir test/dir2

echo dir1-file > test/dir1/dir1-file
echo dir2-file > test/dir2/dir2-file

$gtar -g/tmp/test.$$/listed-incr -c -f /tmp/test.$$/full.tar test

rm -rf test/dir2
mv test/dir1 test/dir2

$gtar -g/tmp/test.$$/listed-incr -c -f /tmp/test.$$/incremental.tar test

mv test orig

$gtar -x -g/dev/null -f /tmp/test.$$/full.tar
$gtar -x -g/dev/null -f /tmp/test.$$/incremental.tar

관련 정보