1

Если я получил один файл размером 1200 ГБ и мне нужно создать резервную копию или скопировать его, используя жесткие диски емкостью 3 500 ГБ, каков наилучший способ сделать это с помощью Linux?

4 ответа4

1

Вот решение, которое не требует единой целевой файловой системы 1200 ГБ.

dd if=<1200G file> of=<dest disk 1 file> bs=1G count=400
dd if=<1200G file> of=<dest disk 2 file> bs=1G skip=400 count=400
dd if=<1200G file> of=<dest disk 3 file> bs=1G skip=800

С помощью этой техники вы можете даже подключить диск 1, скопировать на него, отключить, подключить диск 2 и т.д.

Затем файлы могут быть объединены с помощью cat или dd позже:

dd if=<disk 1 file> of=<new 1200G file> bs=1G count=400
dd if=<disk 2 file> of=<new 1200G file> bs=1G seek=400 count=400
dd if=<disk 3 file> of=<new 1200G file> bs=1G seek=800

Обратите внимание, что skip используется для поиска нужного места во входном файле, чтобы начать копирование, а seek используется для копирования в определенное место в выходном файле.

0

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

split –bytes=100M /big/file/ /chunks/files/prefix

использование префикса облегчает восстановление с помощью cat

cat prefix* > rebuilded.file

0

Как насчет использования команды split ?

Usage: split [OPTION]... [INPUT [PREFIX]]
Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default
size is 1000 lines, and default PREFIX is `x'.  With no INPUT, or when INPUT
is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.
  -a, --suffix-length=N   use suffixes of length N (default 2)
  -b, --bytes=SIZE        put SIZE bytes per output file
  -C, --line-bytes=SIZE   put at most SIZE bytes of lines per output file
  -d, --numeric-suffixes  use numeric suffixes instead of alphabetic
  -e, --elide-empty-files  do not generate empty output files with `-n'
      --filter=COMMAND    write to shell COMMAND; file name is $FILE
  -l, --lines=NUMBER      put NUMBER lines per output file
  -n, --number=CHUNKS     generate CHUNKS output files.  See below
  -u, --unbuffered        immediately copy input to output with `-n r/...'
      --verbose           print a diagnostic just before each
                            output file is opened
      --help     display this help and exit
      --version  output version information and exit

SIZE is an integer and optional unit (example: 10M is 10*1024*1024).  Units
are K, M, G, T, P, E, Z, Y (powers of 1024) or KB, MB, ... (powers of 1000).

CHUNKS may be:
N       split into N files based on size of input
K/N     output Kth of N to stdout
l/N     split into N files without splitting lines
l/K/N   output Kth of N to stdout without splitting lines
r/N     like `l' but use round robin distribution
r/K/N   likewise but only output Kth of N to stdout
0

Один из вариантов - создать группу томов и том, охватывающий все три физических диска. Это приведет к файловой системе ~ 1500G.

Для этого посмотрите страницу руководства vgcreate , хотя вполне вероятно, что ваш дистрибутив содержит инструмент с графическим интерфейсом для манипулирования группами томов.

Если вы используете для этого split , вам понадобится 1200 ГБ свободного места в одной файловой системе для хранения трех частей. Использование группы томов делает это ненужным. Вы просто скопируете файл.

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