Pracuję nad niektórymi skryptami automatyzacji, aby skonfigurować moje ustawienia sieciowe, zawartość plików hostów i pliki / etc / resolver, podczas uzyskiwania dostępu do różnych sieci, z których często korzystam.
Mogą wystąpić pewne kombinacje, które wymagają zmian w pliku hosts, i chciałbym uniknąć konieczności konfigurowania macierzy różnych kombinacji, powielając ustawienia wspólne w całym miejscu.
Na przykład mogę być w sieci służbowej, tj. w budynku lub mogę uzyskać do niego dostęp przez VPN. W obu przypadkach muszę dodać pewne ustawienia do pliku hosts, aby sieć działała poprawnie, niektóre są udostępniane, inne nie. Dodatkowo, jeśli jestem na VPN, czy mogę być w domu, w którym to przypadku są jakieś inne ustawienia w pliku hosts ja też chce dodać.
W związku z tym miałem nadzieję, że zamiast utworzyć jeden plik dla „domu, dostępu do pracy przez VPN” vs. „domu, bez dostępu do pracy” itp., Czy jest sposób, aby dołączyć inne pliki?
Załóżmy na przykład, że działa następująca hipotetyczna składnia:
#!include home.hosts
#!include work.hosts
127.0.0.1 localhost
::1 localhost
W ten sposób mogłem po prostu wyczyścić zawartość jednego lub obu tych dwóch dodatkowych plików, a resztę pozostawić.
Poza tym istnieje lepszy sposób na zrobienie tego niż zbudowanie małego skryptu, który łączy pliki takie jak te w nowy plik hosts, a w ramach mojej konfiguracji automatyzacji najpierw usuwam niektóre z tych dodatkowych plików, a następnie wywołuję skrypt, aby odbudować pojedynczy plik hosts z tych dodatkowych plików?
dscl
poleceniu, będę musiał to również zbadać.
dscl
, dla których /etc/hosts
jest po prostu jednym z dostępnych źródeł danych, zapewniając (oczywiście) mapowanie nazwy hosta / adresu IP. Skonfigurowanie skryptu, który zapisuje dscl
i opróżnia pamięć podręczną, może działać lepiej w danej sytuacji niż przechowywanie wielu kopii pliku hosts lub przepisywanie go przez cały czas.
dscl
Bezpośrednio modyfikować wpisy hosta ?