Lösung 1:
/etc/hosts
möchte ich lieber nicht anfassen in Bezug auf Parsing und so. Ich würde einfach ein Verzeichnis namens /etc/hosts.d/
erstellen und erstellen Sie ein Skript, das Folgendes benötigt:
- IP
- Name
- Aliase
erstellt eine (1) Datei mit einer (1) Zeile. Der Dateiname lautet <ip>.host
und dann cat /etc/hosts.d/*host > /tmp/hosts.new && mv /tmp/hosts.new /etc/hosts
. Fügen Sie vielleicht eine incron
hinzu Ereignis, das /etc/hosts.d/
überwacht Verzeichnis und generiert /etc/hosts
neu wann immer etwas passiert, werden Sie auf diese Weise auch alte Einträge los.
Lösung 2:
Schau mal bei augeas. Es verfügt über einen vorgefertigten Parser/Serializer für die Hosts-Datei (das steht sogar in ihrer Kurzanleitung) und wird mit einem einfachen Tool zum Vornehmen von Änderungen (augtool) geliefert.