Вывод: с чисто технической точки зрения это не имеет большого значения, но изменение размера лучше. Как только вы добавите практические аспекты, добавление нового раздела станет явным победителем.
С чисто технической точки зрения у новых PV есть несколько недостатков:
С практической точки зрения, ни один из них не имеет значения для любого разумного количества PV. В первую очередь важны дополнительные копии метаданных, но есть опция LVM, позволяющая хранить меньше копий (VG -- metadatacopies
или PV -- metadataignore
).
Кроме того, продолжая практическую точку зрения, удаление и повторное создание раздела с гораздо большей вероятностью пострадает от ошибки администратора (опечатка и т. д.), чем создание нового раздела из-за лучших инструментов для последнего. И любые возникающие ошибки администратора, вероятно, будут гораздо более разрушительными для изменения размера (поскольку ваши данные находятся в разделе с измененным размером, а в новом разделе нет данных). Это еще хуже, когда у вас есть несколько слоев; например, mdraid ниже LVM. В зависимости от вашей опции -e
, суперблоки могут быть в конце массива — это весело, когда вы изменяете размер раздела.
Есть одно исключение, которое приходит на ум: если по какой-либо причине вы не можете создать новый раздел. Например, возможно, вы используете таблицы разделов DOS и уже использовали все четыре основных раздела (без создания расширенного раздела). Тогда у тебя нет выбора.
Вы хотите, чтобы IFS
был пробелом, он должен быть таким:
while IFS=" " read a b; do
mkdir -p /srv/ftp/$a
chown -R ftp:ftp /srv/ftp/$a/
passwd $a $b
done < /test
У вас есть файл, содержащий два поля, разделенных пробелами, имя пользователя и пароль:
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
, но я не считаю, что здесь это уместно.