Разделить файл из потокового вывода с произвольным именем и gzip

У вас есть три диска, но кажется, что они подключены в RAID1 с одним горячим резервом. Рассмотрим:

Device     Boot     Start       End   Sectors  Size Id Type
/dev/sda1  *         4096   1050623   1046528  511M fd Linux raid autodetect
/dev/sda2         1050624  42008575  40957952 19.5G fd Linux raid autodetect
/dev/sda3        42008576 233383935 191375360 91.3G fd Linux raid autodetect
/dev/sda4       233383936 234430463   1046528  511M 82 Linux swap / Solaris

Размеры sda1, sda2 и sda3 совпадают с размерами устройств md1, md2, md3. Если бы они были RAID5, вы бы увидели в общей сложности 240 ГБ, вместо этого вы видите 120 ГБ.

По моему мнению, это указывает на то, что sda и sdb соединены в RAID1, так что вместе они отображаются как 120 ГБ, в то время как sdc хранится в резерве и вообще не виден.

Вы можете проверить это, запустив mdadm --detail /dev/md1. Я ожидаю что-то вроде

       Raid Level : raid1
        Array Size : 511 MiB
      Raid Devices : 2
     Total Devices : 3    <--------

             State : clean
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 1    <--------

Consistency Policy : bitmap

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1

       2       8       33        -      spare         /dev/sdc1
0
01.12.2020, 14:56
1 ответ

Для пользовательского имени (префикс )можно просто добавить в конце в качестве аргумента. Для фильтрации всех выходных файлов через gzipвы можете использовать опцию --filter=COMMAND. Также -a3является необязательным, если вам нужно определить длину суффикса до 3 символов (001, 002и т. д. ). Также обратите внимание на-(для чтения стандартного ввода )перед аргументом выходного префикса.

./loopscript.sh | split -a3 -dl 10000 --filter='gzip > $FILE.gz' - myoutput. 

создаст сжатые gzip-файлы (из 10 000 строк, если распаковать )с именами вроде:

myoutput.000.gz
myoutput.001.gz
myoutput.002.gz

Из man splitсинтаксис говорит (необязательный )выходной префикс идет в конец:

SYNOPSIS
       split [OPTION]... [FILE [PREFIX]]

и --filterпринимают $FILEв качестве имени файла из команды split:

       --filter=COMMAND
              write to shell COMMAND; file name is $FILE
0
18.03.2021, 22:46

Теги

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