Wouter がコメントしたように、既存のセットアップはすでにかなりまともなようです。
dhclient
への依存度を下げたい場合 、Debian にパッケージ化された多くの動的 DNS クライアントを見ることができます。
例:ddclient
DHCP の変更に対応したり、単にイーサネット インターフェイスを監視したりできます。 IP アドレスが変更されたとき (そのときのみ)、動的 DNS エントリを更新し (任意の数のプロバイダーで)、別のスクリプトを実行できます (両方のユースケースをカバーします)。
関心の分離の原則に従って、ソリューションをさらに簡素化/分割することを提案します:
- スクリプト
/etc/dhcp/dhclient-exit-hooks.d/trigger_on_ip_change
アクションを実行する必要があるかどうかのみを判断し、そのアクションを別のスクリプトに委ねる/usr/local/bin/act_on_ip_change
- スクリプト
/usr/local/bin/act_on_ip_change
必要な変更のみを実行する
これらの懸念事項を分離する理由は次のとおりです。
dhclient
かどうかを個別にテストできます (デバッグ中にシステム上で実際に何も変更せずに) 正しくトリガーされている- IP を更新せずに (したがって、潜在的に失う可能性がある) 「変更の作成」をテストできます
/usr/local/bin/act_on_ip_change
を実行できます 必要に応じて手動で- パーツがより理解しやすくなりました
要するに、これを /etc/dhcp/dhclient-exit-hooks.d/trigger_on_ip_change_action
にすることをお勧めします :
# based on /etc/dhcp/dhclient-exit-hooks.d/debug
if [ "$reason" = "BOUND" -a "$old_ip_address" != "$new_ip_address" ]; then
/usr/local/bin/act_on_ip_change
fi