ipaddr" 별칭을 사용하여 노드 찾기 127.0.0.1및 추가" 라는 특정 작업을 수행합니다 .

ipaddr" 별칭을 사용하여 노드 찾기 127.0.0.1및 추가" 라는 특정 작업을 수행합니다 .

나는 localhost에 대한 별칭을 추가하고 싶기 때문에(다른 호스트 이름을 사용하여 로컬에서 웹 서버를 테스트할 수 있도록) augtool자동 편집 기능을 사용하려고 합니다 ./etc/hosts

나는 좋은 문서를 찾기 위해 다양한 소프트웨어를 찾고 있었습니다.

ipaddr나는 노드를 찾고 127.0.0.1별칭을 추가하기 위해 of를 사용합니다. 또한 Augeas에 대한 좋은 문서를 찾고 싶습니다.

답변1

호스트에 별칭을 추가하는 것은 어렵지 않지만 작업이 멱등하더라도 호스트 항목에 별칭이 있는지 확인하는 것이 더 흥미로운 경우가 많습니다.

Augeas로 수행하는 방법은 다음과 같습니다.

set /files/etc/hosts/*[ipaddr="127.0.0.1"]/alias[.="mycouchdb"] "mycouchdb"

별칭은 아직 존재하지 않는 경우에만 추가됩니다.

설명하다:

alias[.="mycouchdb"]값이 있는 별칭을 참조합니다 mycouchdb( .현재 노드를 참조하기 때문입니다).

mycouchdb값이 있는 별칭이 아직 없으면 alias[.="mycouchdb"]일치하는 항목이 없으며 Augeas는 alias레이블과 값이 있는 노드를 생성합니다 mycouchdb. 노드가 존재하지 않을 때의 규칙은 필터 없이 경로 라벨을 사용하는 것이며, 이 경우에는 alias새로운 라벨 노드를 생성하고 여기에 값을 할당합니다.mycouchdb

별칭이 이미 존재하는 경우 표현식이 일치하고 set 명령은 값을 로 대체합니다 mycouchdb. 이는 아무 작업도 수행하지 않습니다.

답변2

ipaddr" 별칭을 사용하여 노드 찾기 127.0.0.1및 추가" 라는 특정 작업을 수행합니다 .

하다

augtool -b -s set '/files/etc/hosts/*[ipaddr = "127.0.0.1"]/alias[last()+1]' mycouchdb

이는 ( )의 하위 항목이 있는 파일의 모든 노드를 찾고 /etc/host/다음을 추가합니다.*ipaddr=127.0.0.1aliasmycouchdb

문서

경로는 여기에 설명되어 있습니다.https://github.com/hercules-team/augeas/wiki/Path-expressionsXPath를 사용합니다.

죄송합니다. 다른 좋은 점을 찾을 수 없습니다.

관련 정보