Estoy trabajando en algunos scripts de automatización para configurar la configuración de mi red, el contenido de los archivos de host y / etc / resolver archivos, cuando accedo a diferentes redes que frecuenta.
Pueden ocurrir algunas combinaciones que requieren cambios en el archivo de hosts, y me gustaría evitar tener que configurar una matriz de combinaciones diferentes, duplicando las configuraciones compartidas por todas partes.
Por ejemplo, puedo estar en la red de trabajo, es decir. en el edificio, o puedo acceder a través de VPN. En ambos casos, necesito agregar algunas configuraciones al archivo de hosts para que la red funcione correctamente, algunas son compartidas, otras no. Además, si estoy sobre VPN, puedo estar en casa, en cuyo caso hay otras configuraciones en el archivo de hosts que también quiero agregar.
Como tal, esperaba que en lugar de crear un archivo para "inicio, acceder al trabajo a través de VPN" frente a "inicio, no acceder al trabajo", etc., ¿hay alguna forma de incluir otros archivos?
Por ejemplo, digamos que la siguiente sintaxis hipotética funciona:
#!include home.hosts
#!include work.hosts
127.0.0.1 localhost
::1 localhost
De esta manera, podría simplemente borrar el contenido de uno, o ambos, de esos dos archivos adicionales, y dejar el resto.
O, salvo eso, ¿hay una mejor manera de hacer esto que simplemente construir un pequeño script que concatena archivos como esos en un nuevo archivo de hosts, y como parte de mi configuración de automatización, primero borro algunos de esos archivos adicionales, y luego invoco el script para reconstruir el archivo de hosts individuales a partir de esos archivos adicionales
dscl
comando, tendré que investigar sobre eso también.
dscl
, para lo cual /etc/hosts
es simplemente una de las fuentes de datos disponibles, proporcionando (por supuesto) asignaciones de nombre de host / dirección IP. Configurar una secuencia de comandos que escriba dscl
y vacíe la memoria caché podría funcionar mejor en su situación que mantener varias copias del archivo de hosts o reescribirlo todo el tiempo.
dscl
directamente?