GNU/Linux >> Znalost Linux >  >> Linux

Způsob jednání se změnou IP adresy od ISP?

Jak poznamenal Wouter, vaše stávající nastavení se již zdá docela slušné.

Pokud chcete něco méně závislého na dhclient , můžete se podívat na mnoho dynamických DNS klientů zabalených v Debianu.

Například ddclient může reagovat na změny DHCP nebo jednoduše monitorovat rozhraní Ethernet; když se IP adresa změní (a teprve potom), může aktualizovat dynamický záznam DNS (u libovolného počtu poskytovatelů) a také spustit samostatný skript (který by pokryl oba vaše případy použití).


Navrhuji vaše řešení dále zjednodušit/rozdělit podle principu oddělení zájmů:

  • skript /etc/dhcp/dhclient-exit-hooks.d/trigger_on_ip_change by měl pouze rozhodnout, zda je třeba provést akci, a odložit akci na samostatný skript /usr/local/bin/act_on_ip_change
  • skript /usr/local/bin/act_on_ip_change by měl provádět pouze nezbytné změny

Důvody pro oddělení těchto obav jsou:

  • můžete samostatně otestovat, zda dhclient spouští správně (aniž byste během ladění cokoli ve vašem systému měnili)
  • můžete otestovat „provádění změn“, aniž byste museli obnovovat (a tedy potenciálně ztratit) svou IP
  • můžete spustit /usr/local/bin/act_on_ip_change ručně v případě potřeby
  • části jsou mnohem srozumitelnější

Stručně řečeno, navrhoval bych to mít v /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

Linux
  1. /usr/bin Vs /usr/local/bin Na Linuxu?

  2. Linux – Jak získat adresu IPv4 pro rozhraní z /proc?

  3. Rozdíl mezi /opt a /usr/local?

  1. Co dělá řádek '!/bin/sh -e'?

  2. ./configure :/bin/sh^M :špatný interpret

  3. Nainstalujte binární soubory do /bin, /sbin, /usr/bin a /usr/sbin, interakce s --prefix a DESTDIR

  1. povolení odepřeno pro skladatele v /usr/local/bin/

  2. Jaké jsou významy /usr/sbin, /usr/local/sbin a /usr/local/bin?

  3. Přesunutý obsah /bin do /usr/bin, je možné vrátit zpět?