Возможность редактирования Augeas, если она существует, добавить иначе - при ссылке на вновь созданный узел
Я хочу сделать что-то вроде:
set /files/etc/exports/dir[. = '/export/home'][client = '10.0.0.0/8'] /export/home
set /files/etc/exports/dir[. = '/export/home'][client = '10.0.0.0/8']/client 10.0.0.0/8
Что произойдет, если я выполню вышеприведенное, так это то, что вторая команда создаст еще один новый узел без какого-либо установленного значения dir. Моя проблема заключается в том, что /export/home share не является уникальным каталогом, поскольку клиенты добавляются в новые строки для удобства чтения. Мне нужны опции поиска по каталогу и клиенту, чтобы найти уникальный узел.
Как я могу сослаться на (возможно) вновь созданный узел в команде 1, так что конечный результат:
/export/home 10.0.0.0/8()
1 ответ
У Augeas есть нечто, называемое defnode, которое выполняет команду set и сохраняет полученный узел в указанной переменной.
Решение моей проблемы:
defnode newdir /files/etc/exports/dir[. = '/export/home' and client = '10.0.0.0/8'] /export/home
set $newdir/client 10.0.0.0/8
set $newdir/client/option[1] rw
set $newdir/client/option[2] async
set $newdir/client/option[3] no_subtree_check
* Редактировать: Изменено ][
в and
для лучшей читаемости