loop create from file

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

С чисто технической точки зрения у новых PV есть несколько недостатков:

  • Вы получаете еще одну копию метаданных LVM, это требует некоторого дискового пространства. Если вы часто выполняете операции LVM, это также приводит к усилению записи (поскольку метаданные зеркалируются для всех PV)
  • Может оставаться пустое место для выравнивания
  • Немного увеличивается количество метаданных LVM (на копию) для хранения Информация о новом PV.
  • Если вы создаете LV, который охватывает оба PV, он не является непрерывным (из-за дополнительных метаданных и любых пробелов, оставленных для выравнивания). Так, например, если вы использовали этот LV для больших последовательных операций чтения/записи, теперь там есть поиск.

С практической точки зрения, ни один из них не имеет значения для любого разумного количества PV. В первую очередь важны дополнительные копии метаданных, но есть опция LVM, позволяющая хранить меньше копий (VG -- metadatacopies или PV -- metadataignore).

Кроме того, продолжая практическую точку зрения, удаление и повторное создание раздела с гораздо большей вероятностью пострадает от ошибки администратора (опечатка и т. д.), чем создание нового раздела из-за лучших инструментов для последнего. И любые возникающие ошибки администратора, вероятно, будут гораздо более разрушительными для изменения размера (поскольку ваши данные находятся в разделе с измененным размером, а в новом разделе нет данных). Это еще хуже, когда у вас есть несколько слоев; например, mdraid ниже LVM. В зависимости от вашей опции -e, суперблоки могут быть в конце массива — это весело, когда вы изменяете размер раздела.

Есть одно исключение, которое приходит на ум: если по какой-либо причине вы не можете создать новый раздел. Например, возможно, вы используете таблицы разделов DOS и уже использовали все четыре основных раздела (без создания расширенного раздела). Тогда у тебя нет выбора.

1
28.04.2016, 11:45
2 ответа

Вы хотите, чтобы IFS был пробелом, он должен быть таким:

while IFS=" " read a b; do
mkdir -p /srv/ftp/$a
chown -R ftp:ftp /srv/ftp/$a/
passwd $a $b
done <  /test 
0
28.01.2020, 01:20

У вас есть файл, содержащий два поля, разделенных пробелами, имя пользователя и пароль:

 pippo mm 
pluto tt {{1} } 

Вы можете использовать подобный сценарий для обработки файла, создания учетной записи пользователя и соответствующего каталога:

ftpuid=$(getent passwd ftp | cut -d: -f3)
if test -z "$ftpuid"; then echo "No ftp account" >&2; exit 1; fi

while read -r user password
do
    test -z "$user" && continue
    echo "Creating account for $user, with home /srv/ftp/$user" >&2
    useradd -d /srv/ftp/"$user" -M -N -g ftp -o -u "$ftpuid" "$user"
    mkdir -m700 -p /srv/ftp/"$user"
    chown "$ftpuid":ftp /srv/ftp/"$user"
    test -n "$password" && ( echo "$password"; echo "$password" ) | passwd -q "$user" 2>/dev/null
done < file.txt

Есть и другие варианты для паролей настроек, такие как chpasswd , но я не считаю, что здесь это уместно.

0
28.01.2020, 01:20

Теги

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