Я работаю над некоторыми сценариями автоматизации для настройки сетевых параметров, содержимого файлов хостов и файлов / etc / resolver при доступе к различным сетям, между которыми я часто бываю.
Могут возникнуть некоторые комбинации, которые требуют внесения изменений в файл hosts, и я бы хотел избежать создания матрицы различных комбинаций, повсеместно дублирующих общие настройки.
Например, я могу быть на рабочей сети, то есть. в здании, или я могу получить к нему доступ через VPN. В обоих случаях мне нужно добавить некоторые настройки в файл hosts для правильной работы сети, некоторые являются общими, некоторые нет. Кроме того, если я использую VPN, я могу быть дома, и в этом случае в файле хостов есть некоторые другие настройки, которые я также хочу добавить.
Поэтому я надеялся, что вместо того, чтобы создать один файл для «дома, доступа к работе через VPN» и «дома, не доступа к работе» и т. Д., Есть ли способ включить другие файлы?
Например, допустим, работает следующий гипотетический синтаксис:
#!include home.hosts
#!include work.hosts
127.0.0.1 localhost
::1 localhost
Таким образом, я мог бы просто очистить содержимое одного или обоих из этих двух дополнительных файлов, а остальные оставить.
Или, кроме этого, есть ли лучший способ сделать это, чем просто создать небольшой сценарий, который объединяет файлы, подобные этим, в новый файл hosts, и в качестве части моей настройки автоматизации я сначала очищаю некоторые из этих дополнительных файлов, и затем я вызываю сценарий для перестройки одного файла hosts из этих дополнительных файлов?
dscl
команде, мне также придется исследовать это.
dscl
, для которых /etc/hosts
просто является одним из доступных источников данных, предоставляя (конечно) сопоставления имени хоста / IP-адреса. Настройка сценария, который записывает dscl
и очищает кэш, может работать лучше в вашей ситуации, чем хранить несколько копий файла hosts или перезаписывать его все время.
dscl
напрямую?