Пакетное преобразование изображений '.tif' в '.jpg'

Вы можете использовать запись DEVICEв mdadm.conf, чтобы учитывать только определенные имена устройств и игнорировать все остальные. По умолчанию mdadmпринимает все блочные устройства, перечисленные в /proc/partitions.

DEVICE /dev/emc*

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

Это также проблема, с которой вы сталкиваетесь при использовании петлевых устройств:

# losetup --find --show /dev/sdi2
/dev/loop4

Теперь /dev/loop4и /dev/sdc3идентичны, что также означает, что они имеют один и тот же UUID:

# blkid /dev/sdi2 /dev/loop4
/dev/sdi2: UUID="0a73725c-7e29-4171-be5d-be31d56bf8fe" TYPE="ext2"
/dev/loop4: UUID="0a73725c-7e29-4171-be5d-be31d56bf8fe" TYPE="ext2"

Итак, какое устройство следует использовать, когда вы mount UUID=0a73725c-7e29-4171-be5d-be31d56bf8fe?

# mount UUID=0a73725c-7e29-4171-be5d-be31d56bf8fe /mnt/tmp
# df -h /mnt/tmp
Filesystem      Size  Used Avail Use% Mounted on
/dev/loop4      2.0G  490M  1.4G  26% /mnt/tmp

В данном случае он выбрал петлевое устройство, что могло быть, а может и не быть моим намерением.

Дублирование подобных устройств представляет собой огромную проблему, потому что вдруг UUID, которые должны быть уникальными, перестают быть уникальными, и, таким образом, в конечном итоге может использоваться не то устройство.

LVM также борется с этой проблемой, она подробно описана здесь:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/logical_volume_manager_administration/duplicate_pv_multipath

К сожалению, эта документация также не предоставляет надлежащего решения, а просто предлагает обходной путь фильтрации устройств.


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

С таблицами разделов, mdadm, LUKS, LVM вы обычно получаете смещение бесплатно, поскольку они имеют заголовок в начале своего родительского устройства, а дочерние блочные устройства, которые они предоставляют, смещены от него.

Таким образом, в /dev/sdx вы видите только таблицу разделов, в /dev/sdx1 вы видите только заголовок mdadm, в /dev/md1 вы видите только заголовок LUKS, в /dev/mapper/cryptomd1 вы видите только заголовок LVM. и /dev/VG/LV вы видите только файловую систему, потому что каждое из этих устройств смещено относительно своих родительских данных.

Если вы проделаете то же самое для многопутевой настройки, метаданные mdadm будут видны только на /dev/emcpowera, но не на /dev/sdk, и последний не сможет по ошибке собраться в RAID.

0
14.05.2020, 15:44
1 ответ

После того, как вы cdв основной каталог, содержащий подпапки.

IFS=$'\n'
for i in $(find -type f -name "*tiff"); do 
    echo $i
    convert $i $i.jpg
done

find -type f -name "*tiff" -exec rm {} \;


IFS— внутренний разделитель полей

Единственная проблема, которую я вижу, заключается в том, что я не смог извлечь basenameфайла

Не забудьте сначала попробовать в маленькой папке, прежде чем переходить к большой

0
28.04.2021, 23:14

Теги

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