Назад | Перейти на главную страницу

Вариант редактирования 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()

У Авгия есть что-то под названием 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 для лучшей читаемости