Да, это возможно. Просто создайте новый профиль (на основеlxc-container-default-cgns
)и используйте его для определенных контейнеров. Итак, первый запуск
cp -i /etc/apparmor.d/lxc/lxc-default-cgns /etc/apparmor.d/lxc/lxc-default-with-nfs
Затем отредактируйте новый файл/etc/apparmor.d/lxc/lxc-default-with-nfs
:
profile lxc-container-default-cgns
наprofile lxc-container-default-with-nfs
}
)Либо напишите
mount fstype=nfs*,
mount fstype=rpc_pipefs,
или (более явно)
mount fstype=nfs,
mount fstype=nfs4,
mount fstype=nfsd,
mount fstype=rpc_pipefs,
и, наконец, запустите systemctl reload apparmor
.
Отредактируйте /etc/pve/lxc/${container_id}.conf
и добавьте эту строку:
lxc.apparmor.profile: lxc-container-default-with-nfs
Затем остановите контейнер и запустите его снова, т.е. вот так:
pct stop ${container_id} && pct start ${container_id}
Теперь подключение общих ресурсов NFS должно работать.
Сperl
:
perl -0777 -ne 'print sort /^\d.*\n(?:\D.*\n)*/gm' your-file
Это загружает весь файл в память (режим slurp с -0777 -p
), извлекает блоки на основе этого регулярного выражения (строка, начинающаяся(^
)с цифры (\d
), следующей за 0 или более(*
)строками, начинающимися с не -цифрой(\D
))и print
с ними после sort
ing.
Чтобы отсортировать записи, разделенные нулями -, если есть символ, который гарантированно не появится в ваших данных, вы можете использовать tr
, чтобы заменить его нулевыми байтами. Однако это не поможет вам напрямую, поскольку ваши данные разделены символами новой строки, и даже сортировка GNU не имеет возможности обрабатывать только определенные символы новой строки в качестве разделителей. Вам нужно перевести последовательности табуляции новой строки -во что-то, что не содержит новой строки, затем отсортировать, а затем отменить исходный перевод.
Предполагая, что ваши данные не содержат табуляции, кроме одной табуляции в начале некоторых строк, перевод может заключаться в удалении новых строк перед табуляциями и добавлении их обратно после сортировки.
awk '/^\t/ {line = line $0; next}
{print line; line = $0}
END {print line}' |
sort |
awk '{gsub(/\t/, "\n\t"); print}'