Копирование большого объема файлов с сохранением структуры папок

Я знаю, что этому вопросу уже 4 года, но я наткнулся на него только сегодня и понял, что пару лет назад был в той же ситуации, что и вы.

В итоге мы использовали определение Packer для автоматизации процесса сборки образа. Packer поддерживает guest_additions_urlопцию . Мы указали это на локальное зеркало с копией iso гостевых дополнений. Имейте в виду, однако, что это просто загружает образ в папку на виртуальной машине или вставляет его в виртуальный дисковод компакт-дисков, в зависимости от того, какие другие параметры конфигурации вы выбрали. Установка — это упражнение, оставленное пользователю -, обычно с этим справляется сценарий подготовки. Мы основывали наше определение Packer на одном из репозитория Chef "Bento" , который использует сценарий подготовки для установки гостевых дополнений после того, как iso был скопирован в виртуальную машину :

.

#!/bin/sh -eux

# set a default HOME_DIR environment variable if not set
HOME_DIR="${HOME_DIR:-/home/vagrant}";

case "$PACKER_BUILDER_TYPE" in
virtualbox-iso|virtualbox-ovf)
    VER="`cat $HOME_DIR/.vbox_version`";
    ISO="VBoxGuestAdditions_$VER.iso";
    mkdir -p /tmp/vbox;
    mount -o loop $HOME_DIR/$ISO /tmp/vbox;
    sh /tmp/vbox/VBoxLinuxAdditions.run \
        || echo "VBoxLinuxAdditions.run exited $? and is suppressed." \
            "For more read https://www.virtualbox.org/ticket/12479";
    umount /tmp/vbox;
    rm -rf /tmp/vbox;
    rm -f $HOME_DIR/*.iso;
    ;;
esac

В репозиториях доступны пакеты гостевых дополнений для других дистрибутивов, таких как Ubuntu и Arch Linux, но по какой-то причине самое близкое, что я нашел для RHEL/CentOS, — это отрывочные веб-сайты, предлагающие пакеты гостевых дополнений для рекламы -hoc загрузок, но нет надежных репозиториев.

П.С. Теперь существует devops -специальный сайт Stack Exchange .

0
01.07.2020, 21:46
1 ответ

Если вы используете find -exec cp, у вас будет процесс, который нельзя легко перезапустить в случае ошибки. Я не уверен, что ошибка, которую вы видите, как-то связана с командой, которую вы нам показали, поскольку в команде нет ссылки на сеть.

Возможно, вы копируете данные с или на диск SMB/NFS? (Если это так, вы получите более эффективную копию, если сможете войти в удаленную систему и позволить rsyncуправлять сетевым копированием.)

Тем не менее,эта команда rsyncпозволит вам несколько раз перезапустить процесс копирования (, включая обработку уже сделанных вами копий)

rsync -av --include '*.msg' --include '*/' --exclude '*' --prune-empty-dirs --dry-run. /destinated_folder/

Удалите --dry-run, если вы уверены, что он будет делать то, что вы ожидаете.

0
18.03.2021, 23:23

Теги

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