Разделите большой файл резервной копии архива [d] в постоянной рабочей области

Я в настоящее время пытаюсь использовать tar и split для получения архивов размера DVD моей Машины времени копируют базу данных. Это собирается работать на этот раз, поскольку у меня есть раздел на моем внешнем диске, достаточно большом для содержания двух копий крупной папки Backups.backupdb, но я хочу знать, существует ли меньший и более быстрый метод.

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

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

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

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

Какие-либо идеи? Как Вы резервируете жесткие диски к оптическим средам?

Обновление: Запущенный процесс рано этим утром, все еще работая, когда я должен был уехать в работу, возвратился к этому: alt text

1
задан 28.02.2016, 03:17

2 ответа

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

2
ответ дан 12.12.2019, 13:11

Поскольку сценарий из моего другого ответа подходил для этого вопроса также, я адаптировал тот сценарий для записи частей в 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}"
0
ответ дан 12.12.2019, 13:11

Теги

Похожие вопросы