aws env에 있는 모든 서버의 resolv.conf에 다음 줄을 추가하고 덮어쓰지 않도록 하고 싶습니다.
options timeout:1 attempts:1 rotate
나는 이것을 달성하는 방법인 것처럼 보이는 dhclient 시작 및 종료 후크를 발견했습니다.
다음 내용으로 /etc/dhcp/dhclient-enter-hooks라는 Enter 후크를 배치하려고 했습니다.
#!/bin/bash
sed -i '$ a\options timeout:1 attempts:1 rotate' /etc/resolv.conf
dhclient를 실행하면 파일 시작 부분에 동일한 줄이 여러 번 추가됩니다. 때로는 처음에 몇 번, 끝에 몇 번. 출구 후크도 동일한 작업을 수행합니다.
이 줄이 resolv.conf에 한 번이 아닌 여러 번 추가되는 이유는 무엇입니까? 그리고 이 행동은 무작위입니다. 때로는 dhclient를 실행하는 동안 동일한 줄을 4번 추가합니다. 때로는 3 등입니다. 이를 수행하는 올바른 방법은 무엇입니까?
답변1
이것매뉴얼 페이지(8) dhclient-script
행동은 신중하게 정의됩니다. 가능한 모든 작업에 대해 스크립트가 호출됩니다.
작업 클라이언트 구성 스크립트를 호출해야 하는 경우
dhclient
환경에서 일련의 변수를 정의한 다음 를 호출합니다CLIENTBINDIR/dhclient-script
. 모든 경우에$reason
이러한 스크립트는 스크립트를 호출하는 이유의 이름으로 설정됩니다. 현재 정의 된 이유는 다음과 같습니다 :MEDIUM
,PREINIT
,BOUND
,RENEW
,REBIND
,REBOOT
,EXPIRE
,FAIL
및 .STOP
RELEASE
NBI
TIMEOUT
스크립트에 대한 간단한 수정은 해당 행이 아직 존재하지 않는 경우에만 해당 행을 추가하는 것입니다. 더 나은 해결책은 $reason
적절한 케이스 값을 일치시키는 것입니다.
#!/bin/bash
grep -q '^options' /etc/resolv.conf ||
echo 'options timeout:1 attempts:1 rotate' >>/etc/resolv.conf
true