Рейтинг:0

Сценарий оболочки для проверки resolv.conf

флаг eg

Мне нужно написать сценарий оболочки, который проверяет содержимое resolv.conf

Например

домен пример.com
поиск abc.com abc.org abc.net
сервер имен 1.1.2.2
сервер имен 3.3.4.4

abc.com/abc.org/abc.net может появляться в любом порядке

сервер имен строка может появляться в любом порядке

Между параметрами могут быть пробелы.

Какова логика, которую можно использовать для проверки конфигурации

Например Если abc.com отсутствует, должно быть указано, что abc.com отсутствует

Tilman Schmidt avatar
флаг bd
Эта задача не очень четко определена. Что именно вы хотите проверить в resolv.conf? Кроме того, должен ли это быть сценарий оболочки, и если да, то какая оболочка? Стандартные снаряды не очень хорошо подходят для этой задачи. Языки сценариев, такие как Perl или Python, подойдут лучше.
djdomi avatar
флаг za
или планты перезапишут resolve.conf цели независимо?
флаг in
Вы должны взглянуть на управление конфигурацией.
Рейтинг:2
флаг us
Rob

Самая простая проверка, чтобы увидеть, содержит ли файл определенный шаблон, выполняется с помощью общего grep утилита командной строки.

С правильными флагами и параметрами вы можете создать базовый скрипт, который делает что-то вроде следующего псевдокода:

# Разбейте элементы, которые вы ищете 
# в основных шаблонах регулярных выражений 
# и сохранить их в массиве

MyRequiredEntries=("сервер имен\s*1.1.2.2" "сервер имен\s*3.3.4.4" "домен\s*example.com" "search\s.*abc\.com" "search\s.*abc\. сеть")

# Цикл по элементам массива 

для MyEntry в "${MyRequiredEntries[@]}" 
делать 
   
   # используйте код выхода команды grep -q для дальнейшей логики 

   grep -q "$MyEntry" /etc/resolv.conf

   МойРезультат=$?

   если [$MyResult -eq 0]; тогда 
      echo "сделайте что-нибудь, когда resolv.conf содержит шаблон $MyEntry" 
   еще 
      echo "сделайте что-нибудь, если resolv.conf НЕ содержит шаблон $MyEntry" 
   фи 
сделано

Который, конечно, можно настроить в соответствии с вашими потребностями.


Как прокомментировали другие: вместо того, чтобы играть в «найди отличия» вы можете сделать шаг назад и подумать, почему вы проводите этот тест и что вы собираетесь делать с вашими результатами.

Если конечным результатом является обеспечение правильной конфигурации всех серверов, желательно начать управление ими с помощью системы управления конфигурацией и избежать подобных различий в будущем.
И если запуск решения для централизованного управления конфигурацией — это слишком далеко, а не тестирование, а затем ручное исправление настроек: не беспокойтесь и сразу применяйте правильные настройки везде...

Одно замечание: когда (некоторые из) ваших систем настроены на DHCP, вы можете начать с установки оттуда правильных настроек.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.