Estou trabalhando em alguns scripts de automação para definir minhas configurações de rede, hospedar o conteúdo do arquivo e / etc / resolvedor, ao acessar redes diferentes que frequento.
Existem algumas combinações que podem exigir alterações no arquivo hosts, e eu gostaria de evitar a necessidade de configurar uma matriz de combinações diferentes, duplicando as configurações compartilhadas em todo o lugar.
Por exemplo, eu posso estar na rede de trabalho, ou seja. no prédio, ou eu posso acessá-lo através da VPN. Nos dois casos, preciso adicionar algumas configurações ao arquivo hosts para que a rede funcione corretamente, algumas são compartilhadas, outras não. Além disso, se eu estou usando a VPN, posso estar em casa; nesse caso, há outras configurações no arquivo de hosts que também quero adicionar.
Como tal, eu esperava que, em vez de criar um arquivo para "casa, acesso ao trabalho pela VPN" vs. "casa, não acesso ao trabalho" etc., houvesse uma maneira de incluir outros arquivos?
Por exemplo, digamos que a seguinte sintaxe hipotética funcione:
#!include home.hosts
#!include work.hosts
127.0.0.1 localhost
::1 localhost
Dessa forma, eu poderia simplesmente limpar o conteúdo de um ou de ambos os arquivos extras e deixar o resto.
Ou, exceto, existe uma maneira melhor de fazer isso do que apenas criar um pequeno script que concatene arquivos como aqueles em um novo arquivo de hosts e, como parte da minha configuração de automação, limpei primeiro alguns desses arquivos extras, e então invoco o script para reconstruir o arquivo de hosts únicos a partir desses arquivos extras?
dscl
comando, vou ter que pesquisar sobre isso também.
dscl
, dos quais /etc/hosts
é simplesmente uma das fontes de dados disponíveis, fornecendo (é claro) mapeamentos de nome de host / endereço IP. A configuração de um script que grava dscl
e libera o cache pode funcionar melhor em sua situação do que manter várias cópias do arquivo hosts ou reescrevê-lo o tempo todo.
dscl
diretamente?