일정한 작업 공간에서 큰 백업 파일을 [d] 개로 분할


1

나는 현재 사용을 시도하고있다. tarsplit Time Machine 백업 데이터베이스의 DVD 크기의 아카이브를 가져 오는 중입니다. 이번에는 외장 드라이브에 두 개의 대용량 Backups.backupdb 폴더가 들어갈 수있는 파티션이 있으므로이 작업을 진행할 것입니다. 그러나 작고 빠른 방법이 있는지 알고 싶습니다.

내가 뭘하고 싶은지 : 내 폴더의 4.7GB 아카이브를 하나씩 만들고 차례대로 디스크에 각각 씁니다. 최종 결과는 내용이 하드 드라이브에 복사 된 다음 추출 명령을 실행하여 원본 100 + GB 폴더의 복사본을 구성 할 수있는 DVD 세트입니다. 또한이 디스크 중 하나 이상 (또는 그 이상)이 손상된 경우에도 아카이브가 무결성을 유지할 수 있다면 매우 좋습니다. 전체 프로세스는 4.7GB 이상의 메모리를 필요로하지 않습니다. 데이터를 내 디스크 굽기 프로그램에 파이핑하고 하드 디스크에 아무 것도 쓰지 않는 것이 좋습니다. 타르를 drutil (또는 다른 디스크 굽기 응용 프로그램)으로 분할 할 수 있으며,이 모든 중단을 포함하여 몇 십여 개의 DVD를 처리 할 수 ​​있습니까?

내가 지금하고있는 일 : 나는 아카이브를 만들기 위해 tar를 실행하고 그 결과를 더 작은 아카이브들로 나눕니다 :

sudo tar cvjsp /Volumes/BackupDisk/Backups.backupdb/ | split -d -b 4480m - Backups.backupdb.tar.bz2.

이것은 내가 DVDs에 기록 될 파일들 (Backups.backupdb.tar.bz2.01, Backups.backupdb.tar.bz2.02, ...)을 제공한다. 이들은 압축 된 아카이브만큼 많은 공간을 차지합니다 (물론). 그러나 이제는이 파일과 원본 데이터로 모두 존재하므로 백업의 크기가 거의 두 배로 늘어나므로 많은 여유 공간이 필요합니다. 나는 그것을 지금 가지고 있지만, 이것은 더 이상 오래 가지 않을 것입니다 ...

어떤 아이디어? 하드 드라이브를 광 미디어에 어떻게 백업합니까?

최신 정보: 오늘 아침 일찍 일을 시작했는데, 직장에 나가야 할 때 일했는데, 다시이 일로 돌아 왔습니다. alt text


방금 비슷한 질문에 답했습니다. 수퍼 유저 /questions/177823/... . 꽤 필요하지는 않지만 어쨌든 유용 할 수 있습니다.
whitequark

@Whitequark - 그리고 나는이 질문에 직접 대답했다. 이 스크립트는 여기에 게시하십시오. 만약 당신이하지 않으면, 나는 아마도 그것을 수정하여 DVD 기록을하고, 그것이 작동한다면 여기에 게시 할 것입니다 ...
Kevin Vermeer

답변:


2

시간과 슬픔을 덜어주고 광학 미디어 대신 (또는 추가적으로) 백업 할 외장 HDD를 선택하십시오.


1
언급 된 HDD, +1. 복원 작업은 백업 작업의 가장 중요한 부분이며, HD를 여러 개의 광학 미디어로 백업하는 것은 중요한 작업을 복원 할 때 바보가 아니거나 쉬운 방법처럼 들리지 않습니다.
Janne Pikkarainen

나는 있다 외장형 하드 드라이브. 이것은 답변의 "추가"부분에 관한 것입니다.
Kevin Vermeer

@ Janne - 신뢰성은 백업을하는 또 다른 중요한 부분이며 데이터 가까이에 위험한 속도로 회전하는 디스크 헤드가있는 두 개의 자성 판에 백업하는 것은 먼 거리에서 레이저로 읽은 불에 타 버린 플라스틱 조각보다 훨씬 안전합니다. 또한 디스크 중 하나가 파괴 된 경우 복구 할 수있는 분할 가능 백업 형식이 있다면 그것에 대해 듣고 싶습니다.
Kevin Vermeer

@reemrevnivek - 그래서 주간 / 모든 백업을 위해 항상 지키지 않는 다른 외장 드라이브를 구입하십시오. 또는 광학 미디어가 절실히 필요하다면 새로운 하드 드라이브를 사용하여 임시 파일을 저장하고 문제를 무효화 할 수 있습니다. 솔직히, 신뢰할 수없는 온더 플라이 (on-the-fly) 굽기 등으로 주변을 둘러 보거나 문제에 100 달러를 던져서 끝내십시오.
sml

0

에서 스크립트로 내 다른 대답 이 질문에도 적합했습니다. DVD에 부품을 쓰는 스크립트를 채택했습니다.

#!/bin/bash
# (c) whitequark 2010

set -e

if [ $# != 2 ]; then
  echo "Usage: $0 <filename>"
  echo "  This script will split file to multiple DVD-sized parts,"
  echo "  starting from the end, and truncating the original file"
  echo "  in process."
  echo "  Use at your own risk."
  exit 0
fi

filename=$1
partsize=4700000000

size=$(stat -c '%s' "${filename}")
parts=$(($size / $partsize))

do_split() {
  _part=$1
  _size=$2

  _partname="${filename}.$(printf '%04d' $_part)"

  echo "Splitting part $_part"
  echo $(($partsize * ($_part - 1)))
  dd if="${filename}" of="${_partname}" \
      count=1 bs=$partsize skip=$(($_part - 1))
  echo "Truncating source file"
  truncate "${filename}" --size="-$_size"

  growisofs -Z /dev/dvd -R -J -dvd-compat "${_partname}"
}

lastsize=$(($size % $partsize))
if [ $lastsize != 0 ]; then
  do_split $(($parts + 1)) $lastsize
fi

for i in $(seq $parts -1 1); do
  do_split $i $partsize
done

rm "${filename}"

내가하고 싶은 것은 동시에 모든 DVD를위한 공간을 필요로하지 않고 큰 폴더의 DVD를 구울 수 있습니다. 스크립트를 자세히 살펴보면 내 애플리케이션에서 제대로 작동하지 않을 수 있습니다. 나는 프로그램을 끝내고 나면 여전히 갖고 싶은 폴더부터 시작한다. 나의 가설적인 방법과 당신의 방법 모두 현재 아카이브에 추가로 하나의 전체 파트를위한 공간이 있어야합니다. 괜찮습니다.
Kevin Vermeer

dd 유망 해 보입니다.하지만 저는 bs, skip, 및 count 옵션을 사용하여 디스크의 일부를 가져 와서 디스크를 구운 다음 부품을 삭제하십시오. 나는 잘못된 나무를 짖고 있었다. split.
Kevin Vermeer

뭔가 (의사 스크립트) tar [opts] | myscript.sh여기서 myscript.sh는 다음과 같습니다. for i in size/4.7GB; do \ dd [your opts] of=part.tar."$i" | mkisofs [] | wodim []; rm part.tar.$i; echo "insert new disk"; read; done. 나는 오늘 밤에 내 리눅스 박스에 집에 돌아갈 때 이것을 진정한 배시로 바꿀 것이다.
Kevin Vermeer

이 스크립트를 업데이트하여 DVD에 부품을 기록했습니다. 나는 다음과 통합하는 것에 대해 생각할 것이다. tar, 파이프 및 버퍼링에 약간의 문제가있을 수 있습니다.
whitequark

파이프와 버퍼링 문제에 관해서는 제 질문에 대한 업데이트를 살펴보십시오. 더 많은 작업이 필요합니다 ...
Kevin Vermeer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.