Разделение архивов tar и их загрузка по одному

Я хочу сделать резервную копию моих систем, чтобы разделить архивы tar со сценарием загрузки их по одному. Он должен создать разделенный архив, а затем запустить сценарий. Скрипт загружает деталь и удаляет ее. Это необходимо для того, чтобы резервные копии не занимали столько места в системе. Я мог бы создать разделенные архивы и загрузить их, но мне нужно 50% свободного места. Поэтому мне нужно создавать их по одному. Я ищу советы по оптимальному подходу. У меня есть пара в виду, вы можете предложить лучше один.

подход один: разделите архивы с помощью самого tar и используйте --new-volume-script. Проблема в том, что я должен рассчитать, насколько большой будет резервная копия. ТАР, по-видимому, требует определенных направлений для того, сколько частей будет существовать и насколько они должны быть большими. Это означает, что мой скрипт должен будет вычислить это и сгенерировать параметры для tar.

tar -c -M -L 102400 --file=disk1.tar --file=disk2.tar --file=disk3.tar largefile.tgz

это создает три 100 МБ файлов для каждой части. Если есть способ сделать это динамически tar автоматически именует файлы и создает столько, сколько нужно, я хотел бы знать, потому что это сделает этот подход работоспособным.

подход второй: напишите мой собственный скрипт, который ведет себя как split. Выход из тар дается ее вывод и выгружает файлы и заставляет ждать дегтя. Это было бы самым простым решением.

30
задан John Tate
06.03.2023 0:50 Количество просмотров материала 3442
Распечатать страницу

1 ответ

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

cd /path/to/files -print | \
   afio -oxv -s 1g -H rotate.sh backup-`date -Imin`-Vol%V.afio

и rotate.sh ваш скрипт для загрузки и удаления каждого файла архива. Это создает архивы:

backup-2014-11-29T18:04-0500-Vol1.afio
backup-2014-11-29T18:04-0500-Vol2.afio
backup-2014-11-29T18:04-0500-Vol3.afio
...

и работает rotate.sh после завершения каждого тома.

другие варианты:

-o              # create an archive
-x              # perserve ownership suid/sgid
-v              # verbose
-s 1g           # split archives after 1g
-H rotate.sh    # run this script after each 'tape change'
-Z -P xz        # Compress, and use xz instead of gzip
 # Also, %V, below, inserts the volume number into the file name
 backup-`date -Imin`-Vol%V.afio               

Other afio аспекты: это похоже на cpio, за исключением того, что он специально ориентирован на скриптовые резервные копии. Также это безопаснее для сжатых архивов потому что он хранит каждый файл, сжатый по отдельности, вместо сжатия всего потока. Таким образом, повреждение данных после сжатия затрагивает только один файл, а не весь архив. Таким же образом, он также может шифровать gpg каждый файл по мере его хранения, что отлично подходит для облачного хранилища.

0
отвечен glallen 2023-03-07 08:38

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх