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に1回ではなく複数回追加されるのはなぜですか?そしてこの行動はランダムです。時には、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