tar의 다중 볼륨 기능을 자동화할 수 있습니까?

tar의 다중 볼륨 기능을 자동화할 수 있습니까?

알았어, 방금 다 읽었어이 페이지내 데비안 서버의 현재 백업 솔루션을 개선한 후. Tar는 꽤 좋은 다중 볼륨 기능을 제공하는 것 같습니다. 하지만 제가 시도했을 때 그렇게 해야 했습니다 Prepare volume #X for ‘mybackup.tar.gz’ and hit return:.

아무도 Enter 키를 누르지 않고 다중 볼륨 프롬프트에 필요한 내용을 입력하지 않는 자동화된 CRON 스크립트에서 이 기능을 사용하고 싶기 때문에 이를 자동화하려면 어떻게 해야 합니까?

split유일한 방법을 사용하고 있습니까 ?

답변1

해결책은 다음과 같습니다.

printf 'n file-%02d.tar\n' {2..100} | 
    tar -ML 716800 -cf file-01.tar Documents/ 2>/dev/null

여기서 100은 볼륨 수보다 크거나 같은 숫자입니다.

편집하다

나는 터무니없는 숫자를 받아들이지 않는 경향이 있지만 큰 숫자를 설정하는 것은 문제가 되지 않습니다.

또 다른 옵션은 다음과 같습니다."다음 볼륨" 스크립트, 옵션을 사용하여 설정할 수 있습니다 -F.

tar -ML 716800 -F './myscript file' -cf file.tar Documents/ 2>/dev/null

그리고 ./myscript넣어

#!/bin/bash

prefix="$1"
n=1
while [[ -e "$prefix-$n.tar" ]]; do
  ((n++))
done
mv "$prefix.tar" "$prefix-$n.tar"
echo "$prefix-$n.tar"

각 볼륨의 끝에서 실행되며 file.tar해당 볼륨으로 이동됩니다 fileNNN.tar. 마지막 볼륨의 경우 스크립트가 실행되지 않으므로 마지막 볼륨 이름이 유지됩니다 file.tar.

편집 2

나는 다음과 같은 자세한 해결책을 찾았습니다.
다음은 생성용 스크립트와 추출용 스크립트 두 개입니다.

#!/bin/bash
# CREATION SCRIPT

# save on file the initial volume number
echo 1 >number

# multi-volume archive creation
tar -ML 100000 -F './tar-multi-volume-script c file' -cf file.tar Documents2/ 2>&-

# execute the "change-volume" script a last time
./tar-multi-volume-script c file

그리고

#!/bin/bash
# EXTRACTION SCRIPT

# save on file the initial volume number
echo 1 >number

# execute the "change-volume" script a first time
./tar-multi-volume-script x file

# multi-volume archive extraction
tar -M -F './tar-multi-volume-script x file' -xf file.tar 2>&-

# remove a spurious file
rm file.tar

이는 ./tar-multi-volume-script다음 공식으로 주어진다.

#!/bin/bash
# TAR INVOKED SCRIPT

mode="$1"
prefix="$2"
n=$(<number)

case $mode in
  c) mv "$prefix.tar"    "$prefix-$n.tar" ;;
  x) cp "$prefix-$n.tar" "$prefix.tar"    ;;
esac

echo $((n+1)) >number

분명히 상황에 맞게 여기저기서 많은 부분을 변경하고 제대로 작동하는지 확인해야 하는데 cron, 이는 항상 약간의 어려움입니다.

답변2

의심스러우면 설명서를 읽어보세요...

http://www.gnu.org/software/tar/manual/html_node/Multi_002dVolume-Archives.html

또는 즐겨 사용하는 인터넷 검색 엔진에서 다음 검색 문자열을 사용하세요.

"테이프나 디스크보다 긴 아카이브"

GNU의 해당 부분아스팔트매뉴얼은 적절한 스크립트(라고 함)를 제공합니다.새 볼륨) 그리고 사용-에프tar 명령에 대한 옵션입니다. 원하는 경우 이 스크립트를 원하는 대로 조정할 수 있습니다.

즐기다!

관련 정보