Вместо использования awk для фильтрации вывода ps используйте параметр ps -o, чтобы получить то, что вы хотите:
ps -e -o pid,comm
Это должно сделать то, что вы описали выше. Дополнительную информацию для распечатки см. На странице руководства ps.
ОБНОВЛЕНИЕ: Я вижу, что не смог использовать pwdx
. Примерьте это для получения размера:
#!/bin/bash
ps -o pid= -o comm= |
while read LINE
do
eval $(echo $LINE |
awk '{pid=$1; comm=$2; printf "echo -n \"%s \"; pwdx %s\n", comm, pid}' )
done
Возможно, вам придется добавить флаги к ps
, чтобы получить нужные вам процессы - в приведенном выше примере показаны только процессы с вашим идентификатором пользователя.
Как объяснил @frostschutz, в этом случае инструмент vgsplit
можно использовать для отделения PV от VG и преобразования его в другой, одиночный -PV VG:
vgsplit yourvg newvgname /dev/sdx
Он удаляет PV /dev/sdx
из VG yourvg
и преобразует его в новый, одиночный -PV VG с именем newvgname
.
Для vgsplit
все LV на PV /dev/sdx
должны быть отключены, что может быть достигнуто командой vgchange -an /dev/yourvg/lvname
после их размонтирования.
Позднее группы VG можно повторно -соединить с помощью команды vgmerge
.