3

Я пытаюсь создать запланированное задание для копирования дерева каталогов, содержащего очень большое количество маленьких файлов с одного сервера на другой. Непосредственное копирование дерева занимает пару дней, поэтому я подумал, что может быть быстрее заархивировать каталог, скопировать файл zip и разархивировать на конечном сервере.

Я попробовал утилиту командной строки 7Zip, 7z.exe. Он задохнулся от ошибки "невозможно выделить память". Поэтому сейчас я ищу альтернативу.

Кто-нибудь знает о zip-утилите, которая:

  1. Работает на всех современных версиях Windows
  2. Это бесплатно
  3. Может управляться из командной строки
  4. Не требует установки (простое копирование EXE-файла и, возможно, связанной с ним DLL, как может быть 7z.exe.)
  5. Не душит очень большие деревья каталогов

???

4 ответа4

2

Рассматривали ли вы использовать что-то вроде Robocopy с параметром /MT ? Я предполагаю, что параллельная копия превзойдет сжатие, передачу и распаковку. Я бы начал с 8 потоков по умолчанию и следил за длиной очереди диска на обоих концах, чтобы убедиться, что вы насыщаете, но не уничтожаете диск до смерти. Robocopy также может копировать только те файлы, которые действительно необходимо передать.

Usage :: ROBOCOPY source destination [file [file]...] [options]

/MT[:n] :: Do multi-threaded copies with n threads (default 8).
           n must be at least 1 and not greater than 128.

Если это не работает по какой - то причине, я имел хороший успех , используя zip.exe исполняемый файл из UnxUtils пакета или для более экстремальных потребностей ЗИПА, KZIP.exe исполняемого файла. Kzip может быть немного медленнее при сжатии при экстремальных настройках сжатия, но я не видел zip-архиватора, который мог бы последовательно справляться с этим для экономии места при использовании стандартного архива. Конечно, он будет работать как автономный исполняемый файл и легко поддается командной строке. Я не могу сказать, что когда-либо использовал их в очень больших каталогах.

Вы также должны знать, что "стандартный" ZIP-архив может иметь размер не более 4 ГБ и содержать не более 65535 файлов. Если ваша структура превышает эти ограничения, вам нужно будет использовать более новые версии стандарта zip (ZIP64).

1

Я могу предложить PeaZip как возможное решение. Это позволяет очень легко создавать командные сценарии для пакетного выполнения задач сжатия без нагрузки и ограничений графического интерфейса, и это интерфейс Robocopy для операций копирования файлов / каталогов.

1

Info-ZIP - оригинальная бесплатная программа ZIP.

Я не пробовал это на очень больших каталогах. Насколько большой каталог (количество файлов, общий размер и т.д.)?

0

BZIP2: http://gnuwin32.sourceforge.net/packages/bzip2.htm

GZIP: http://gnuwin32.sourceforge.net/packages/gzip.htm

Tar: http://gnuwin32.sourceforge.net/packages/gtar.htm

Им требуются некоторые библиотеки поддержки, но они, скорее всего, уже установлены в большинстве установок Windows.

Стоит попробовать.

Редактировать: Как насчет DeltaCopy - версии rsync, упакованной для Windows, хотя она все еще может подавиться количеством файлов: http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp

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