1

В настоящее время я пытаюсь использовать tar и split для получения архивов моей резервной копии Time Machine в формате DVD. В этот раз это сработает, так как у меня на внешнем диске достаточно большой раздел, чтобы в нем могли храниться две копии массивной папки Backups.backupdb, но я хочу знать, есть ли меньший и более быстрый метод.

Что я хотел бы сделать: создавать архивы моей папки объемом 4,7 ГБ по очереди и записывать их по очереди на диск. Конечным результатом будет набор DVD-дисков, содержимое которых можно скопировать на жесткий диск, а затем выполнить команду извлечения, чтобы сформировать копию моей исходной папки размером более 100 ГБ. Кроме того, если архив сможет сохранить свою целостность, если один (или более) из этих дисков будет уничтожен, это было бы здорово. Весь процесс никогда не потребует более 4,7 ГБ памяти. Еще лучше было бы передать данные в мою программу записи дисков и никогда не записывать что-либо на жесткий диск. Могу ли я действительно передать tar в разделение на drutil (или другое приложение для записи дисков), и ожидать, что это сработает на паре дюжин DVD со всеми этими прерываниями?

Что я делаю сейчас: я запускаю tar для создания архива, затем делю его вывод на несколько небольших архивов:

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

Это дает мне кучу файлов (Backups.backupdb.tar.bz2.01, Backups.backupdb.tar.bz2.02, ...), готовых для записи на DVD. Они занимают столько же места, сколько сжатый архив (конечно). Однако теперь он существует как в виде этих файлов, так и в виде исходных данных, что почти удваивает размер моих резервных копий, что требует от меня много дополнительного пространства. У меня есть это сейчас, но это не будет длиться намного дольше ...

Есть идеи? Как вы копируете жесткие диски на оптические носители?

Обновление: процесс начался рано утром, все еще работал, когда мне пришлось уйти на работу, вернулся к этому:альтернативный текст

2 ответа2

2

Сэкономьте время и силы и приобретите внешний жесткий диск для резервного копирования вместо (или в дополнение к) оптических носителей.

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}"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .