Возобновление прерванного процесса копирования

Как возобновить безопасный и надежный процесс копирования файла $A в резервное расположение $B выполненного с помощью pv "$A" > "$B" или cat "$A" > "$B" ?

(предположим, что файл $A очень большой, например, файл моментального снимка LVM2)

Возможно ли это с dd ?

Предпочитаемые решения: bash или python (предпочтительно python3).

Пример сценария: pv "$A" > "$B" прерывается после копирования 90%. Как возобновить его, чтобы закончить процесс копирования, но не повторить всю работу снова?

3 Solutions collect form web for “Возобновление прерванного процесса копирования”

Да, вы можете использовать dd для пропуска блоков.

 A="file1" B="file2" BLOCKSIZE=512 # default bs for dd size_b=$(stat -c "%s" "$B") skip_blocks=$((size_b / BLOCKSIZE)) dd if="$A" of="$B" skip=$skip_blocks seek=$skip_blocks bs=$BLOCKSIZE 

Важными параметрами здесь являются skip а также seek :

  • skip : пропустить блоки BLOBKS ibs-размера при начале ввода
  • seek : пропускать блоки незанятых блоков BLOCK в начале выхода

Вы хотите rsync :

 rsync -a --append "$A" "$B" 

Вы пытались dd skip с смещением реального размера файла B (независимо от размера блока разделов)?

Это доставит вам недостающую часть. В этот момент вы можете cat их вместе в новый файл с cat "$B" "$A2" >> "$C"; #mv "$C" "$B" cat "$B" "$A2" >> "$C"; #mv "$C" "$B" (где $C – это, конечно, недостающая часть на пути с достаточным пространством).

cat отлично подходит для конкатенирования двоичных файлов, и в этом случае у вас нет нескольких заголовков файлов, которые могли бы запускать простые скриптовые слияния. Есть вероятность, что конец $B будет поврежден, но в этом случае вы можете сократить его и перечитать больше $A на начальном этапе dd.

  • Bash - получить строку, содержащую пробелы в цикле
  • Ограничительные «групповые» разрешения, но открывают «мировые» разрешения?
  • Имя файла Regex с несколькими цифрами
  • Найти файлы рекурсивно, но выберите наиболее крупные из них с дублирующимися именами
  • Найти команду, связанную с файлом конфигурации
  • Сжатие tar-файла без извлечения содержимого
  • Скопируйте последние n-строки из одного файла в другой
  • Сравнить строки и обновить два разных файла
  • Резервное копирование снимков без администратора
  • Запретить обновление «измененного времени» при копировании файлов в установленную папку Samba
  • Кто может изменять разрешения файла / каталога?
  • Interesting Posts

    Что определяет выбор GUI-файла, запускаемый приложениями?

    Как полностью удалить пакет jitsi *?

    Сделать имя хоста адаптированным к локальной / удаленной ситуации

    Сохранение большого количества мелких файлов в ленту LTO

    Изменение местоположения файла конфигурации пользователя по умолчанию

    Как настроить systemd для активации зашифрованного файла подкачки?

    ssh из порта 80 в порт 22?

    Временное управление оболочкой

    Слияние команды со специальными параметрами

    Как получить абсолютный путь от использования команды find unix

    Игнорировать escape-символы при печати строки в сценарии оболочки

    Что такое эквивалент GNU / Linux BSD «route get …»?

    Добавить автозаполнение для пользовательского скрипта

    Как разрешить доступ без полномочий root к Nexus 7 2013 LTE (deb) через adb и fastboot?

    ps | grep показывает плохой результат в подоболочке с заданиями, работающими в фоновом режиме

    Linux и Unix - лучшая ОС в мире.