Dividir um arquivo de backup grande de arquivo [d] em um espaço de trabalho constante

1

No momento, estou tentando usar tar e split para obter arquivos do tamanho de um DVD do meu banco de dados de backup do Time Machine. Vai funcionar desta vez, já que tenho uma partição na minha unidade externa grande o suficiente para conter duas cópias da enorme pasta Backups.backupdb, mas quero saber se existe um método menor e mais rápido.

O que eu gostaria de fazer: Crie arquivos de 4.7GB da minha pasta, um por um, e grave cada um deles no disco. O resultado final seria um conjunto de DVDs, cujo conteúdo poderia ser copiado para um disco rígido, e depois executar um comando de extração, para formar uma cópia da minha pasta original de 100 GB. Além disso, se o arquivo pudesse manter sua integridade se um (ou mais) desses discos fosse destruído, isso seria incrível. Todo o processo nunca exigiria mais de 4,7 GB de memória. Melhor ainda seria canalizar os dados para o meu programa de gravação de disco e nunca escrever nada no disco rígido. Posso realmente canalizar o tar para dividir em drutil (ou outro aplicativo de gravação de disco) e esperar que isso funcione em algumas dúzias de DVDs com todas essas interrupções?

O que estou fazendo agora: Eu corro o tar para fazer o arquivo, depois divido sua saída em um monte de arquivos menores:

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

Isso me dá um monte de arquivos (Backups.backupdb.tar.bz2.01, Backups.backupdb.tar.bz2.02, ...), prontos para serem gravados em DVDs. Eles ocupam tanto espaço quanto o arquivo compactado (é claro). No entanto, agora existe tanto como esses arquivos e como os dados originais, o que soma quase o dobro do tamanho dos meus backups, exigindo que eu tenha muito espaço extra. Eu tenho isso por enquanto, mas isso não vai durar muito mais tempo ...

Alguma ideia? Como você faz backup de discos rígidos para mídia ótica?

Atualização: Comecei o processo ainda esta manhã, ainda trabalhando quando tive que sair para o trabalho, voltei a isso:

    
por Kevin Vermeer 19.08.2010 / 05:36

2 respostas

2

Economize tempo e sofrimento e escolha um disco rígido externo para fazer backup em vez de (ou além de) mídia ótica.

    
por 19.08.2010 / 08:09
0

Como o script de minha outra resposta também foi adequada para essa questão, eu adaptei esse script para escrever partes em 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}"
    
por 19.08.2010 / 14:03

Tags