GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Methode zum Handeln bei Änderung der IP-Adresse vom ISP?

Wie Wouter kommentierte, scheint Ihr bestehendes Setup bereits ziemlich anständig zu sein.

Wenn Sie etwas weniger abhängiges von dhclient wollen , könnten Sie sich die vielen dynamischen DNS-Clients ansehen, die in Debian verpackt sind.

Beispiel:ddclient kann auf DHCP-Änderungen reagieren oder einfach eine Ethernet-Schnittstelle überwachen; Wenn sich die IP-Adresse ändert (und nur dann), kann es einen dynamischen DNS-Eintrag aktualisieren (bei einer beliebigen Anzahl von Anbietern) sowie ein separates Skript ausführen (das beide Ihre Anwendungsfälle abdecken würde).


Ich schlage vor, Ihre Lösung nach dem Prinzip der Trennung von Bedenken weiter zu vereinfachen/aufzuteilen:

  • ein Skript /etc/dhcp/dhclient-exit-hooks.d/trigger_on_ip_change sollte nur entscheiden, ob eine Aktion durchgeführt werden muss, und die Aktion auf ein separates Skript verschieben /usr/local/bin/act_on_ip_change
  • das Skript /usr/local/bin/act_on_ip_change nur die notwendigen Änderungen durchführen

Die Gründe für die Trennung dieser Bedenken sind:

  • Sie können separat testen, ob dhclient korrekt auslöst (ohne während des Debuggens tatsächlich irgendetwas auf Ihrem System zu ändern)
  • Sie können die „Änderung“ testen, ohne dass Sie Ihre IP erneuern müssen (und somit potenziell verlieren)
  • Sie können /usr/local/bin/act_on_ip_change ausführen bei Bedarf manuell
  • die Teile sind viel einfacher zu verstehen

Kurz gesagt, ich würde vorschlagen, dies in /etc/dhcp/dhclient-exit-hooks.d/trigger_on_ip_change_action zu haben :

# 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 Unter Linux?

  2. Linux – Wie bekomme ich die IPv4-Adresse für eine Schnittstelle von /proc?

  3. Was macht die Zeile '!/bin/sh -e'?

  4. ./configure :/bin/sh^M :schlechter Interpreter

  5. Wechseln Sie das Verzeichnis und führen Sie die Datei in einem Befehl aus

Der Unterschied zwischen /opt und /usr/local?

Linux – Zusammenführen von /usr/bin und /usr/sbin in /bin (gnu/linux)?

Installieren Sie Binärdateien in /bin, /sbin, /usr/bin und /usr/sbin, Interaktionen mit --prefix und DESTDIR

Berechtigung für Composer in /usr/local/bin/ verweigert

cmake --version zeigt auf /usr/bin/cmake, während cmake auf /usr/local/bin zeigt

Wie ändere ich das Von:Feld für E-Mails von Cron?